代码之家  ›  专栏  ›  技术社区  ›  user2176576

无法存储名为“trigger1”、组为“group1”的触发器,因为已存在具有此标识的触发器

  •  6
  • user2176576  · 技术社区  · 10 年前

    提到 delete trigger in quartz

    我也遇到了同样的问题: 无法存储名为“schedulerJobTrigger”、组为“group1”的触发器,因为已存在具有此标识的触发器。

    因此,在我考虑取消工作计划之前,我有一个疑问:

    假设我有两份工作。。详情如下: 工作1:从今天17:30开始,每5分钟重复两次 工作2:今天开始时间17:37

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

    谢谢,请帮忙!

    在尝试上述方案之前,即使我使用不同的计划安排新作业 @schedule.scheduleJob(作业,触发器);它给了我一个异常:无法存储名为“schedulerJobTrigger”和组为“group1”的触发器,因为已经存在具有此标识的触发器。

    1 回复  |  直到 7 年前
        1
  •  5
  •   Tim Cooper    7 年前

    已解决,检查是否存在相同的触发器(如果存在),创建了一个新的触发器实例。。并运行代码。

    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);
    }
    
    推荐文章