Quartz:向Job传递数据


JobDetail job1 = newJob(MyJob.class).withIdentity("job1", "group1").build();

newJob方法其实返回一个JobBuilder实例,通过调用JobBuilder的方法配置任务属性,最后调用build方法返回构造的任务实例(任务实例实现了JobDetail)。

每个任务其实都是一个实现了JobDetail接口的实例,这个实例每次执行都会根据当初构造它的JobBuilder配置的Class对象构造出一个新的实例。

JobDetail接口有个getJobDataMap方法能返回一个JobDataMap对象,这个对象实现了Map接口。可以用来传递信息给Job

JobDataMap map = job1.getJobDataMap();
map.put("key", "value");

Job中如何拿到这些数据:通过Job接口的execute方法参数能获取到,若Job.execute(JobExecutionContext context){}则:

JobDataMap map = context.getJobDetail().getJobDataMap();
System.out.println(map.get("key"))

JobDetail只有一个,而实现Job接口的带execute方法的类的实例却有多个,具体也就是每次任务执行的时候会构造一个。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM