防止由特定触发器触发的实例的并发执行

时间:2011-10-27 07:36:54

标签: java concurrency quartz-scheduler

@DisallowConcurrentExecution注释可以防止并发执行特定作业的作业实例,但是是否可以防止并发执行使用特定触发器触发的作业?

2 个答案:

答案 0 :(得分:1)

您可以使用自定义TriggerListener来实现此类限制,该自定义TriggerListener可以审核作业执行并重新安排触发器以供日后使用,或者某些此类限制。

否则,您可能只想制作一份特定触发器会触发的作业副本。

答案 1 :(得分:0)

根据Quartz Scheduler的Javadoc,@DisallowConcurrentExecution注释可防止基于唯一JobKey的作业实例的并发执行。

Javadoc中没有其他注释具有Triggers的类似功能。

然后唯一的另一种可能性是定义自定义JobKey - 但该类为final

TLDR;如果不滚动自己的同步,就不能做到。