gpt4 book ai didi

java - 如何在Java中的quartz调度器中取消调度作业的触发器?

转载 作者:行者123 更新时间:2023-12-02 00:12:22 25 4
gpt4 key购买 nike

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

String jobName = cancelEmailScheheduleRequest.get("jobName"); //correct
String jobGroup = cancelEmailScheheduleRequest.get("jobGroup"); //correct jobGroup
TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup); // returns object {name: "4dc25e67-10fa-4e2b-8ca0-c91c024a9a05", group: "email-jobs"}
Map<String, String> response = new HashMap<>();
try {
if (scheduler.checkExists(triggerKey)) { //returns false instead of true
scheduler.unscheduleJob(triggerKey);
response.put("message", "Email Unscheduled");
return ResponseEntity.ok(response);
} else {
response.put("message", "No such Email to Unschedule");
return ResponseEntity.ok(response);
}
} catch (SchedulerException e) {
e.printStackTrace();
response.put("message", "Some Error occurred");
return ResponseEntity.ok(response);
}

但是 scheduler.checkExists(triggerKey) 行返回 FALSE,而它应该返回 true,因此我的触发器不会被取消调度。因此,else 条件被执行,返回的消息是 No such Email to Unschedule

最佳答案

当您输入作业名称和作业组以获取触发键时,

scheduler.checkExists(triggerKey) 将返回 false。您需要使用触发器名称和触发器组来获取triggerKey。

关于java - 如何在Java中的quartz调度器中取消调度作业的触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58112859/

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