CRON triggers used by ART-DECOR

ART-DECOR's eXist database has a job scheduler based on Quartzopen in new window, a full-featured, open source job scheduling system. This is a small collection of typical configurations.

Cron Expressions

Cron-Expressions are used to configure instances of CronTrigger. Cron-Expressions are strings that are actually made up of seven sub-expressions, that describe individual details of the schedule. These sub-expression are separated with white-space, and represent:

  1. Seconds
  2. Minutes
  3. Hours
  4. Day-of-Month
  5. Month
  6. Day-of-Week
  7. Year (optional field)

EXAMPLE

A complete cron-expression is the string 0 0 12 ? * WED – which means every Wednesday at 12:00:00 pm.

Individual sub-expressions can contain ranges and/or lists.

EXAMPLE

The day of week field in the previous (which reads WED) example could be replaced with MON-FRI, MON,WED,FR, or even MON-WED,SAT.

Wild-cards (the * character) can be used to say “every” possible value of this field. Therefore the * character in the Month field of the previous example simply means every month. A * in the Day-Of-Week field would therefore obviously mean every day of the week.

All of the fields have a set of valid values that can be specified. These values should be fairly obvious – such as the numbers 0 to 59 for seconds and minutes, and the values 0 to 23 for hours. Day-of-Month can be any value 1-31, but you need to be careful about how many days are in a given month! Months can be specified as values between 0 and 11, or by using the strings JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV and DEC. Days-of-Week can be specified as values between 1 and 7 (1 = Sunday) or by using the strings SUN, MON, TUE, WED, THU, FRI and SAT.

The / character can be used to specify increments to values.

EXAMPLE

If you put 0/15 in the Minutes field, it means every 15th minute of the hour, starting at minute zero.

If you used 3/20 in the Minutes field, it would mean every 20th minute of the hour, starting at minute three – or in other words it is the same as specifying 3,23,43 in the Minutes field.

Note the subtlety that */35 does not mean every 35 minutes – it mean every 35th minute of the hour, starting at minute zero – or in other words the same as specifying 0,35.

The ? character is allowed for the day-of-month and day-of-week fields. It is used to specify no specific value. This is useful when you need to specify something in one of the two fields, but not the other.

The L character is allowed for the day-of-month and day-of-week fields. This character is short-hand for last, but it has different meaning in each of the two fields.

EXAMPLE

The value L in the day-of-month field means the last day of the month – day 31 for January, day 28 for February on non-leap years.

If used in the day-of-week field by itself, it simply means 7 or SAT. But if used in the day-of-week field after another value, it means the last xxx day of the month – for example 6L or FRIL both mean the last friday of the month.

You can also specify an offset from the last day of the month, such as L-3 which would mean the third-to-last day of the calendar month. When using the L option, it is important not to specify lists, or ranges of values, as you’ll get confusing/unexpected results.

The W is used to specify the weekday (Monday-Friday) nearest the given day.

EXAMPLE

If you were to specify 15W as the value for the day-of-month field, the meaning is: the nearest weekday to the 15th of the month.

The # is used to specify the nth XXX weekday of the month.

EXAMPLE

The value of 6#3 or FRI#3 in the day-of-week field means the third Friday of the month.

Example Cron Expressions

Here are a few more examples of expressions and their meanings.

EXAMPLES

Create a trigger that simply fires every 5 minutes

0 0/5 * * * ?

Create a trigger that fires every 5 minutes, at 10 seconds after the minute (i.e. 10:00:10 am, 10:05:10 am, etc.).

10 0/5 * * * ?

Create a trigger that fires at 10:30, 11:30, 12:30, and 13:30, on every Wednesday and Friday.

0 30 10-13 ? * WED,FRI

Create a trigger that fires every half hour between the hours of 8 am and 10 am on the 5th and 20th of every month. Note that the trigger will NOT fire at 10:00 am, just at 8:00, 8:30, 9:00 and 9:30

0 0/30 8-9 5,20 * ?

Last Update:
Contributors: dr Kai U. Heitmann