1.自定义的Job类实现StatlefulJob接口,如果实现Job接口,则无法获取参数
public class ColorJob implements StatefulJob
2.重写execute(JobExecutionContext context)方法
String jobName = context.getJobDetail().getFullName();
可以通过context获取一些参数
3.通过context获取JobDataMap,JobDataMap实现了Map接口,所以可以通过JobDataMap获取参数
a . 设置参数
job1.getJobDataMap().put(ColorJob.FAVORITE_COLOR, "Green");
job1.getJobDataMap().put(ColorJob.EXECUTION_COUNT, 1);
b.获取参数
JobDataMap data = context.getJobDetail().getJobDataMap();
String favoriteColor = data.getString(FAVORITE_COLOR);
int count = data.getInt(EXECUTION_COUNT);
4.每个Job都有自己的JobDataMap实例
5.这个例子解决了关于Job传参的问题
本文介绍如何在Quartz框架中使用自定义Job类实现参数传递。具体包括:实现StatefulJob接口而非Job接口以便更好地处理参数;通过JobExecutionContext获取JobDetail及JobDataMap;设置与读取JobDataMap中的参数;确保每个Job拥有独立的JobDataMap实例。

被折叠的 条评论
为什么被折叠?



