无法存储具有名称的触发器:'trigger1'和group:'group1',因为已存在具有此标识的触发器

时间:2014-09-17 12:08:33

标签: cron quartz-scheduler scheduler crontrigger

参考delete trigger in quartz

我遇到了同样的问题: 无法使用名称存储触发器:' schedulerJobTrigger'和group:' group1',因为已存在此标识。

所以在我考虑取消工作之前,我有一个查询:

说我有2个工作..详细信息如下: Job1:今天开始时间@ 17:30,每5分钟重复两次 工作2:今天开始时间@ 17:37

因此,如果我在17:30执行后取消计划一个作业(可能会删除Trigger)并执行Job2,那么调度程序将如何运行需要分别运行的Job1 @ 17:35和17:40(这是重复)

谢谢,请帮帮忙!

在尝试上述方案之前,即使我使用不同的计划安排新工作 @ scheduler.scheduleJob(job,trigger);它给了我一个例外:无法用名称存储Trigger:' schedulerJobTrigger'和group:' group1',因为已存在此标识。

1 个答案:

答案 0 :(得分:4)

解决,检查是否存在相同的触发器,如果​​是,则创建一个具有不同标识的新触发器实例并运行代码。

boolean flag = scheduler.checkExists(trigger.getKey());
if (!flag)
{
    scheduler.start();
    scheduler.scheduleJob(job, trigger);
}
else
{
    Trigger trigger1 =TriggerBuilder.newTrigger().withIdentity("schedulerJobTrigger1", "group1").withSchedule(schedBuilder).build();;
    scheduler.start();
    scheduler.scheduleJob(job, trigger1);
}