Quartz学习之Lesson3-关于Job和JobDetails的更多信息
来源:互联网 发布:centos yum mirror 编辑:程序博客网 时间:2024/05/06 21:27
当我们自定义一个Job(即,实现Job接口,并将要执行的真实业务放置到execute方法中)后,Quartz在每次执行这个Job时,都会根据这个自定义的Job的class生成不同的对象
JobDataMap
如果给一个Job提供一些定制化的信息呢,例如一些参数值,此时可以通过JobDataMap来实现,例如通过如下的代码来将一些参数值放置到JobDataMap中
// define the job and tie it to our DumbJob class JobDetail job = newJob(DumbJob.class) .withIdentity("myJob", "group1") // name "myJob", group "group1" .usingJobData("jobSays", "Hello World!") .usingJobData("myFloatValue", 3.141f) .build();
可以通过如下的方式来取得刚才设置到JobDataMap中的值
public class DumbJob implements Job { public DumbJob() { } public void execute(JobExecutionContext context) throws JobExecutionException { JobKey key = context.getJobDetail().getKey(); JobDataMap dataMap = context.getJobDetail().getJobDataMap(); String jobSays = dataMap.getString("jobSays"); float myFloatValue = dataMap.getFloat("myFloatValue"); System.err.println("Instance " + key + " of DumbJob says: " + jobSays + ", and val is: " + myFloatValue); } }
如果使用了持久化形式的JobStore的话,可以将JobDataMap中的值存储到数据库中(存储到数据库中的值都将被序列化,因此对于存储到JobDataMap中的值的类型要在存储之前多做考虑)
也可以在Job中定义符合JavaBean规范的setter方法,从而当Job被实例化时,将这些值注入到Job当中,类似如下的形式
public class DumbJob implements Job { String jobSays; float myFloatValue; ArrayList state; public DumbJob() { } public void execute(JobExecutionContext context) throws JobExecutionException { JobKey key = context.getJobDetail().getKey(); JobDataMap dataMap = context.getMergedJobDataMap(); // Note the difference from the previous example state.add(new Date()); System.err.println("Instance " + key + " of DumbJob says: " + jobSays + ", and val is: " + myFloatValue); } public void setJobSays(String jobSays) { this.jobSays = jobSays; } public void setMyFloatValue(float myFloatValue) { myFloatValue = myFloatValue; } public void setState(ArrayList state) { state = state; } }
Job “Instances”
可以为不同的Job绑定不同的JobDataMap.
当一个Trigger被触发后,与此相关联的Job就被实例化
Job State and Concurrency
0 0
- Quartz学习之Lesson3-关于Job和JobDetails的更多信息
- Quartz 框架 教程(中文版)2.2.x 之第三课 更多关于Jobs和JobDetails
- Quartz学习之Lesson4-关于Triggers的更多信息
- Quartz.net官方开发指南 第三课:更多关于Jobs和JobDetails
- Quartz.net官方开发指南 第三课:更多关于Jobs和JobDetails
- Quartz学习之Lesson2-Quartz的API,Job和Trigger
- Quartz系列笔记(4) -- Job和JobDetail的更多介绍
- Quartz.NET c# 教程 - 课程三:Jobs 和 JobDetails
- 关于QUARTZ JOB遇到的问题
- 关于QUARTZ JOB 中cluster的用法
- Quartz使用之:远程job的执行
- Quartz:Job和Trigger的关系
- Quartz job学习
- 关于IAP:”需要更多的信息“
- Quartz学习笔记(一)—— Job和SimpleTrigger
- Quartz学习笔记(二)—— Job和CronTrigger
- Quartz源码分析之Job
- Quartz中的Job和StatefulJob
- HDU 2717 Catch That Cow BFS
- java内存机制
- Spring(1)
- 【Linux】安装DNS域名解析服务
- web前端之JavaScript DOM编程艺术之JavaScript语法
- Quartz学习之Lesson3-关于Job和JobDetails的更多信息
- 5-9 用天平找小球 (10分)
- 如何利用计算机视觉打造低成本自动驾驶方案
- ReportViewer 传递参数
- 欢迎使用CSDN-markdown编辑器
- HEVC/H.265理论知识(5)——变换
- 最详细Android集成QQ,微信,微博分享(不用第三方)
- XMPP协议
- 【Android】利用Fiddler进行抓包详解教程。抓取接口以及数据,可以抓真实安卓手机或者模拟器。