Dashboard > Quartz 1 > ... > Documentation > WeeklyTrigger
  Quartz 1 Log In View a printable version of the current page.  
  WeeklyTrigger
Added by Aaron Craven, last edited by Aaron Craven on Jul 17, 2005  (view change)
Labels: 
(None)

Trigger That Executes Every Week

Using org.quartz.helpers.TriggerUtils

(TriggerUtils note: in 1.5.x, org.quartz.helpers.TriggerUtils has moved to org.quartz.TriggerUtils.)

Trigger That Executes Every Wednesday at 3:00PM
Trigger trigger = TriggerUtils.MakeWeeklyTrigger(TriggerUtils.WEDNESDAY, 15, 0);
trigger.setName("trigger1");
trigger.setGroup("group1");

Doing it manually

If you would like a Trigger that executes every week on a specified day of the week at a specified time, use CronTrigger:

CronTrigger That Executes Every Wednesday at 3:00PM
Trigger trigger = new CronTrigger("trigger1", "group1");
trigger.setCronExpression("0 0 15 ? * WED");

If you don't care what time it runs (only the period is important), you can use SimpleTrigger (note that startTime will be the time when the trigger was instantiated):

SimpleTrigger That Executes Every 7 Days
Trigger trigger = new SimpleTrigger("trigger1", "group1");
//7(days per week) * 24(hours per day) * 60(minutes per hour) * 60(seconds per minute) * 1000(milliseconds per second)
trigger.setRepeatInterval(7L * 24L * 60L * 60L * 1000L);

Technically, if you want to specify the time the trigger will fire, you can use a SimpleTrigger, but it's a lot of work to get the startTime right:

SimpleTrigger That Executes Every Wednesday at 3:00PM
java.util.Calendar startTime = java.util.Calendar.getInstance();
startTime.set(java.util.Calendar.HOUR_OF_DAY, 15);
startTime.set(java.util.Calendar.MINUTE, 0);
startTime.set(java.util.Calendar.SECOND, 0);
startTime.set(java.util.Calendar.MILLISECOND, 0);
startTime.set(java.util.Calendar.DAY_OF_WEEK, java.util.Calendar.WEDNESDAY);

//if the startTime will be before the current time, move to next week
if (startTime.getTime.before(new Date()) {
   startTime.add(java.util.Calendar.DAY_OF_MONTH, 7);
}

Trigger trigger = new SimpleTrigger("trigger1", "group1");
trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
trigger.setStartTime(startTime.getTime());
//7(days per week) * 24(hours per day) * 60(minutes per hour) * 60(seconds per minute) * 1000(milliseconds per second)
trigger.setRepeatInterval(7L * 24L * 60L * 60L * 1000L);

Site powered by a free Open Source Project / Non-profit License (more) of Confluence - the Enterprise wiki.
Learn more or evaluate Confluence for your organisation.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.2.9 Build:#527 Sep 07, 2006) - Bug/feature request - Contact Administrators