Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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
titleTime,Today,Cron

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 can be specified using the date or the day keyword.
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
titleecflow 4
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
titleecflow 5
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.

...