在Quartz中删除触发器

25

有没有一种方法可以删除特定作业的已安排触发器?似乎唯一的方法是删除整个作业,然后重新注册作业和触发器。

我有一个可能会有100多个触发器的作业,当我只需要删除1个触发器时,我真的不想删除作业并重新注册所有触发器。

另外,有没有一种方法可以停止调度程序在配置触发器后立即执行作业?

谢谢

1个回答

41

尝试使用scheduler.unscheduleJob

它接受触发器和组名作为参数,并仅删除指定的触发器,而不是任务。

QuartzScheduler

Scheduler

论坛


我之前尝试过在执行unscheduleJob之前和之后执行getTriggersOfJob。但它并没有移除trigger。一旦我移除了,我需要做些什么来让调度程序知道吗? - user140736
3
链接中的答案已经消失。 - maxisam
4
如果有人遇到和我一样的问题,我想提醒一下:如果在创建任务时不调用storeDurably()方法,这个任务会被删除。例如:JobBuilder jobBuilder = new JobBuilder(), jobBuilder.storeDurably()。 - Travis
如果作业有其他触发器,即使未配置为持久化,该作业也不会被删除。(至少在2.3.2版本中是这样) - er-han

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接