QuartzScheduler - SimpleTrigger 重复执行

QuartzScheduler - SimpleTrigger executing repeatedly

我是 运行 Quartz 版本 1.8.4

使用以下代码时

    simpleTrigger.setName(triggerName);
    simpleTrigger.setGroup(triggerGroupName);
    simpleTrigger.setStartTime(startTime);
    simpleTrigger.setRepeatCount(0);
    simpleTrigger.setRepeatInterval(0L);
    simpleTrigger.setEndTime(null);

我得到一个执行多次的触发器。在检查数据库时,我发现:

TRIGGER_NAME TRIGGER_GROUP REEAT_COUNT REPEAT_INTERVAL TIMES_TRIGGERED
simplejob    simplegroup   0           0               3

触发器一直在执行。

这是摘自 Quartz Scheduler tutorial

The repeat count can be zero, a positive integer, or the constant value SimpleTrigger.REPEAT_INDEFINITELY. The repeat interval property must be zero, or a positive long value, and represents a number of milliseconds. Note that a repeat interval of zero will cause 'repeat count' firings of the trigger to happen concurrently (or as close to concurrently as the scheduler can manage).

SimpleTrigger 实例是使用 TriggerBuilder(对于触发器的主要属性)构建的,是创建触发器的更好方法。

使用 TriggerBuilder 为特定时刻(您的开始日期)构建触发器,不重复:

SimpleTrigger trigger = (SimpleTrigger) newTrigger() 
.withIdentity("trigger1", "group1")
.startAt(myStartTime) // some Date 
.forJob("job1", "group1") // identify job with name, group strings
.build();

希望对您有所帮助