【发布时间】:2017-02-08 17:53:56
【问题描述】:
我在调度程序中添加了一个持久作业。在运行时,我正在使用以下代码构建触发器:
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity(new TriggerKey(triggerKey))
.forJob(Constants.CAMPAIGN_MAILING_JOB_KEY)
.usingJobData("test", "test")
.startAt(new Date(runTime))
.build();
然后我使用 , 来安排这项工作,
scheduler.scheduleJob(trigger);
作业已正确执行,但是 Jobdata(“test”字符串参数)在作业中给了我 null。这是我的工作代码,
public class CampaignMessageSendingJob implements Job{
public String campaignId;
public String messageId;
@Override
public void execute(JobExecutionContext jobContext) throws JobExecutionException {
System.out.println("This JOb Was called at"+System.currentTimeMillis());
JobKey key = jobContext.getJobDetail().getKey();
JobDataMap map= jobContext.getMergedJobDataMap();
System.out.println(map.getString("test")); //This is printing NULL
}
public String getCampaignId() {
return campaignId;
}
public void setCampaignId(String campaignId) {
this.campaignId = campaignId;
}
public String getMessageId() {
return messageId;
}
public void setMessageId(String messageId) {
this.messageId = messageId;
}
}
我在这里错过了什么?
使用mongodb作为JobStore实现
【问题讨论】:
标签: java mongodb quartz-scheduler