gpt4 book ai didi

java - 添加到触发器的 JobData 未传递给 Quartz 中的作业

转载 作者:行者123 更新时间:2023-11-30 06:54:59 25 4
gpt4 key购买 nike

我在调度程序中添加了一项持久作业。在运行时,我使用以下代码构建触发器:

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);

作业正确执行,但是作业数据(“test”字符串参数)在作业中给我空值。这是我的工作代码,

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 实现

最佳答案

String value=context.getJobDetail().getJobDataMap().get("测试")

请尝试上述解决方案

关于java - 添加到触发器的 JobData 未传递给 Quartz 中的作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42025607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com