8.1     Cron tutorial


This section introduces how to use cron to set job schedule in Net LineDancer. Most of the contents in this section are quoted from cron4j website (http://www. sauronsoftware.it/projects/cron4j/).


cron4j is a scheduler for the Java platform which is very similar to the UNIX cron daemon.  With cron4j you can launch, from within your Java applications, any task you need at the right time, according to some simple rules.


8.1.1   Scheduling patterns


A UNIX cron tab like pattern is a string split in five space separated parts. Each part is intended  as:

1. Minutes sub-pattern.  During which minutes of the hour should the task been launched. The values range is from 0 to 59.

2. Hours sub-pattern.  During which hours of the day should the task been launched. The values range is from 0 to 23.

3. Days of month sub-pattern. During which days of the month should the task been launched. The values range is from 1 to 31. The special value ”L” can be used to recognize the last day of month.

4. Months sub-pattern. During which months of the year should the task been launched. The values range is from 1 (January) to 12 (December), otherwise this sub-pattern allows the aliases ”jan”, ”feb”, ”mar”, ”apr”, ”may”, ”jun”,

”jul”, ”aug”, ”sep”, ”oct”, ”nov” and ”dec”.

5. Days of week sub-pattern. During which days of the week should the task been launched. The values range is from 0 (Sunday) to 6 (Saturday),  other- wise this sub-pattern allows the aliases ”sun”, ”mon”, ”tue”, ”wed”, ”thu”,

”fri” and ”sat”. The star wildcard character is also admitted, indicating ”ev- ery minute of the hour”, ”every hour of the day”, ”every day of the month”,

”every month of the year” and ”every day of the week”, according to the sub-pattern in which it is used.  Once the scheduler is started, a task will be launched when the five parts in its scheduling pattern will be true at the same time.

 

8.1.2   Some examples:


5  *  *  *  *

This pattern causes a task to be launched once every hour, at the beginning of the fifth  minute  (00:05, 01:05, 02:05 etc.).


*  *  *  *  *

This pattern causes a task to be launched every minute.

*  12  *  *  Mon


This pattern causes a task to be launched every minute during the 12th hour of Monday.

*  12  16  *  Mon


This pattern causes a task to be launched every minute during the 12th hour of Monday, 16th, but only if the day is the 16th of the month.  Every sub-pattern can contain two or more comma separated values.

59  11  *  *  1,2,3,4,5


This pattern  causes a task to be launched  at 11:59AM on Monday, Tuesday, Wednesday, Thursday and Friday. Values intervals are admitted and defined using the minus character.

59  11  *  *  1-5


This pattern is equivalent to the previous one. The slash character can be used to identify step values within a range. It can be used both in the form */c and a-b/c. The subpattern is matched every c values of the range 0,maxvalue or a-b.

*/5   *  *  *  *


This pattern causes a task to be launched  every 5 minutes  (0:00, 0:05, 0:10, 0:15 and so on).

3-18/5 *  *  *  *


This pattern causes a task to be launched every 5 minutes starting from the third minute of the hour, up to the 18th (0:03, 0:08, 0:13, 0:18, 1:03, 1:08 and so on).

*/15   9-17  *  *  *


This pattern causes a task to be launched every 15 minutes between the 9th and

17th hour of the day (9:00, 9:15, 9:30, 9:45 and so on. . .  note that the last execution

will be at 17:45). All the fresh described syntax rules can be used together.

*  12  10-16/2 *  *


This pattern causes a task to be launched every minute during the 12th hour of the day, but only if the day is the 10th, the 12th, the 14th or the 16th of the month.

*  12  1-15,17,20-25 *  *


This pattern causes a task to be launched every minute during the 12th hour of the day, but the day of the month must be between the 1st and the 15th, the 17th, or the 20th and the 25. Finally  cron4j lets you combine more scheduling patterns into one, with the pipe character:

0  5  *  *  *|8 10  *  *  *|22 17  *  *  *


This pattern causes a task to be launched every day at 05:00, 10:08 and 17:22.