...
cron
Cron dependencies can be specified using the cron keyword. Cron differs from time as when the node is complete it queues again immediately. Cron also only works with a real time clock (not a hybrid clock).
Code Block |
---|
cron 23:00 # every day at 23:00 cron 08:00 12:00 01:00 # every hour between 8 and 12 cron -w 0,2 11:00 # every sunday and tuesday at 11 am cron -d 1,15 02:00 # every 1st and 15th of each month at 2 am cron -m 1 -d 1 14:00 # every first of January at 2 pm |
Info | ||
---|---|---|
| ||
When a time has expired, the associated node is free to run. The time will stay expired, until the node is re-queued. |
date or day
Code Block |
---|
date 31.12.2012 # the 31st of December 2012 date 01.*.* # every first of the month date *.10.* # every day in October date 1.*.2008 # every first of the month, but only in 2008 day monday # every monday |
Mixing time dependencies on the same node
A task can have several time and date dependencies. For example:
Code Block |
---|
task tt day monday time 10:00 # run on Monday at 10:00. Here Day/date acts like a guard over the time. |
Code Block |
---|
task tt day sunday # Day/date act like a guard over the time attributes. day wednesday date 01.*.* # The first of every month and year date 10.*.* # The tenth of every month and year time 01:00 # The time is only free *if* we are on one of the day/date time 16:00 |
Info |
---|
Hence when we have multiple time dependencies on the same node, then dependencies of the same type are or'ed together, and then and'ed with the different types. |
Mixing time dependencies on different nodes
When time dependencies are placed on different nodes in the hierarchy, the results may seem surprising.
Code Block |
---|
family fam day monday # The day attribute no longer guards the time attribute. task tt time 10:00 # This will run on Monday at midnight, and Monday at 10 am ? family fam2 time 10:00 task tt day monday # This will run on Monday at midnight, and Monday at 10 am ? |
The example above assume we have suite, with an infinite repeat loop. So why does the task run on Monday at midnight?
This is because time dependencies on different nodes act independently of each other. In this case time attribute was set free, on Sunday at 10 am ( and once free it stays free until it is re-queued). Hence task tt its is free to run at Monday at midnight. After task has run and re-queued. It will then run on Monday at 10 am.
...