QuartzScheduler - SimpleTrigger executing repeatedly

784 Views Asked by At

I'm running Quartz version 1.8.4

When using the following code

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

I get a trigger that executes multiple times. On checking the database, I found:

TRIGGER_NAME TRIGGER_GROUP REEAT_COUNT REPEAT_INTERVAL TIMES_TRIGGERED
simplejob    simplegroup   0           0               3

And the trigger keeps being executed.

1

There are 1 best solutions below

1
On BEST ANSWER

This is an extract from the 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 instances are built using TriggerBuilder (for the trigger's main properties) and is be a better way to create the trigger.

Using the TriggerBuilder to build a trigger for a specific moment in time (your start date) with no repeats:

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

Hope this helps