Quartz cron expression for cron triggers executed every Nth Hour/Day/Week/Month

Salman A. Kagzi picture Salman A. Kagzi · Oct 27, 2009 · Viewed 7.8k times · Source

I am developing an application that gives the user the ability to schedule some activity. Inputs that are provided by user are

  1. Value of N
  2. Option amongst Hour/Day/Week/Month
  3. Start Date
  4. Start Time

I am unable to get the cron expressions right for each of the repeat interval type i.e. Hour/Day/Week/Month so that the trigger time is calculated from the start date.

Answer

stjohnroe picture stjohnroe · Mar 8, 2010

Quartz documentation suggests using a SimpleTrigger http://www.quartz-scheduler.org/docs/cookbook/BiDailyTrigger.html, an example for every other day:

Trigger trigger = new SimpleTrigger("trigger1", "group1");
trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
// 24 hours * 60(minutes per hour) * 60(seconds per minute) * 1000(milliseconds per second)
trigger.setRepeatInterval(2L * 24L * 60L * 60L * 1000L);

Note that you will need to set the trigger start time and the misfire rule.