...
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
cron -w 5L 23:00 # run on *last* Friday(5L) of each month at 23pm
cron -d 1,L 23:00 # Run on the first and last of the month at 23pm |
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
Date
dependencies are always absolute, but wild cards can be used.
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 # Here Day/date acts like a guard over the time. i.e. time is not considered until Monday
time 10:00 # run on Monday at 10 am |
Code Block |
---|
task tt
day sunday # On the same node, 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 set free *if* we are on one of the day/dates
time 16:00 |
The
task will run on Sunday’s and Wednesday’s at 1am and 4pm, but only if the day is the 1st or the 10th of the month.
Info |
---|
With multiple time dependencies on the same node, the dependencies of the same type are or'ed together, 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. Notice the difference between ecflow 4 and ecflow 5
Code Block |
---|
| family fam
day monday # The day attribute no longer guards the time attribute.
task tt
time 10:00 # runs on Monday morning at 00:00 ?, and Monday at 10 am |
|
Code Block |
---|
| family fam
day monday # The day STILL guards the time attribute.
task tt
time 10:00 # Will run on Monday at 10 am |
|
---|
Code Block |
---|
family fam2
time 10:00
task tt
day monday # This will run on Monday morning at 10:00 ?, and Monday at 10 am |
The example above assumes we have suite, with an infinite repeat loop. So why does the task run on Monday morning at 00:00 ?
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 is free to run on Monday morning. After task has run and re-queued. It will then run on Monday at 10 am.
...