如何在Java中的quartz scheduler中为作业取消计划触发器?

如何在Java中的quartz scheduler中为作业取消计划触发器?,java,quartz-scheduler,Java,Quartz Scheduler,我正在尝试为我在Quartz创建的特定作业取消触发计划。我有一个电子邮件作业,它有一个关联的触发器,计划在两小时后运行。我可以使用jobGroup和jobName。jobName/jobId是“28d5f25e-0669-4570-bdb2-b4e865fcdc02”,而jobGroup是“电子邮件作业”。触发键似乎也是正确的 String jobName=cancelEmailSchedulereRequest.get(“jobName”)//对的 字符串jobGroup=CancelEmai

我正在尝试为我在Quartz创建的特定作业取消触发计划。我有一个电子邮件作业,它有一个关联的触发器,计划在两小时后运行。我可以使用
jobGroup
jobName
jobName
/
jobId
是“28d5f25e-0669-4570-bdb2-b4e865fcdc02”,而
jobGroup
是“电子邮件作业”。触发键似乎也是正确的

String jobName=cancelEmailSchedulereRequest.get(“jobName”)//对的
字符串jobGroup=CancelEmailScheduleRequest.get(“jobGroup”)//正确的工作组
TriggerKey TriggerKey=TriggerKey.TriggerKey(作业名称,作业组);//返回对象{name:“4dc25e67-10fa-4e2b-8ca0-c91c024a9a05”,组:“电子邮件作业”}
Map response=newhashmap();
试一试{
如果(scheduler.checkExists(triggerKey)){//返回false而不是true
计划外作业(triggerKey);
回复。放置(“消息”、“未计划的电子邮件”);
返回ResponseEntity.ok(响应);
}否则{
回复。发送(“信息”,“无需计划外发送此类电子邮件”);
返回ResponseEntity.ok(响应);
}
}捕获(调度){
e、 printStackTrace();
response.put(“消息”,“发生了一些错误”);
返回ResponseEntity.ok(响应);
}

但是行
scheduler.checkExists(triggerKey)
返回
FALSE
,而它应该返回true,因此我的触发器不会被取消计划。因此,else条件被执行,返回的消息是
没有此类电子邮件发送到计划外

计划程序。当您输入作业名称和作业组以获取触发器密钥时,checkExists(triggerKey)
将返回false。您需要使用触发器名称和触发器组来获取triggerKey