QuartzScheduler - SimpleTrigger重复执行

时间:2015-06-15 04:52:24

标签: java quartz-scheduler

我正在运行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

触发器一直在执行。

1 个答案:

答案 0 :(得分:0)

这是Quartz Scheduler tutorial

的摘录
  

重复计数可以是零,正整数或常量值SimpleTrigger.REPEAT_INDEFINITELY。重复间隔属性必须为零或正长值,并表示毫秒数。请注意,重复间隔为零将导致触发器的“重复计数”触发同时发生(或者与调度程序可以管理的同时接近)。

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

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

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

希望这有帮助