前言
如何将作业的对象传递给Quartz 的Job进行调度作业使用
我们可以创建自定义类,并使用 jobDataMap 将其传递给作业。 然后在作业执行中获取该对象,并使用它的参数执行任何您喜欢的事情。
代码
创建自定义类:
public class CustomClassParams implements Serializable {
int id;
String name;
String age;
}
将自定义的类在构造JOB的时候传入
JobDataMap jobDataMap = new JobDataMap();
CustomClassParams customClassParams = new CustomClassParams();
customClassParams.setId(1);
customClassParams.setName("John");
customClassParams.setAge("30");
jobDataMap.put("customClassParams", customClassParams);
JobDetail jobDetail = JobBuilder.newJob(MyJob.class).withIdentity("myJob")
.usingJobData(jobDataMap)
.build();
JOB作业时就可以取出自定义的数据类 进行处理
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
CustomClassParams customClassParams = (CustomClassParams)context.getJobDetail().getJobDataMap().get("customClassParams");
customClassParams.getName();
customClassParams.getAge();
System.out.println("Name: "+customClassParams.toString());
}
}