Quartz 有一种使用 setter 从 JobDataMap grep 参数的简单方法
我正在使用 Quartz 2.3,我只是使用 setter 来获取传递的实例对象
例如我创建了这个类
public class Data implements Serializable {
@JsonProperty("text")
private String text;
@JsonCreator
public Data(@JsonProperty("b") String text) {this.text = text;}
public String getText() {return text;}
}
然后我创建了这个类的一个实例并将它放在 JobDataMap 中
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("data", new Data(1, "One!"));
JobDetail job = newJob(HelloJob.class)
.withIdentity("myJob", "group")
.withDescription("bla bla bla")
.usingJobData(jobDataMap) // <!!!
.build();
我的工作课看起来像这样
public class HelloJob implements Job {
Data data;
public HelloJob() {}
public void execute(JobExecutionContext context)
throws JobExecutionException
{
String text = data.getText();
System.out.println(text);
}
public void setData(Data data) {this.data = data;}
}
One!
此代码将在您安排作业时打印。
就是这样,干净高效