Attributes cron, repeat day 1 and repeat date can be used to get a suite running in real time mode.
- cron is is essentially restricted to "house cleaning" tasktasks, while it gets the task requeued as soon as it completes.No trigger can be expected from such task. It is used in operation to get nodes recording a day and time is achieved and so they can alter a variable that can be that is used in a trigger in in a "user family". That way, there is no need for persistent event or meter for cron. As an example, /admin/times is memorising that the milestone is achieved, and /mofc/thu/01/ref is the user family where a trigger is defined: that way we avoid cron dependency directly into the functional suite.
...
Table Body (tbody) |
---|
Image Removed |
|
---|
Image Added Code Block |
---|
language | bash |
---|
title | admin suite definition |
---|
collapse | true |
---|
| suite admin
family times
family mon10
cron -w 1 10:00
task dummy
edit DELTA_DAY '-1'
edit YMD '20160717'
edit DOW '1'
endfamily
family mon22
label info "/mofc/mon products and plots"
cron -w 1 22:00
task dummy
edit DELTA_DAY '-1'
edit YMD '20160717'
edit LAST_YMD 21000101
edit LAST_HMS 9999
edit DOW '1'
endfamily
# ...
endfamily
endsuite
suite user
family main
repeat YMD 19010101 20991201
task do
trigger /admin/times/mon22:LAST_YMD ge /user/main:YMD |
Image Added Code Block |
---|
node=/%SUITE%/%FAMILY%/%TASK%
%nopp
ecflow_client --alter change variable LAST_YMD "$(date +%Y%m%d)" $node
ecflow_client --alter change variable LAST_HMS "$(date +%H%M%S)" $node
%end |
|
Be careful that cron may prevent an inherited repeat attribute to loop as expected. We use it with a complete attribute when we have to (Acquisition task pattern).
- repeat day 1 is used in few suites, to progress each day. day is incremented once all tasks are complete, i.e. there must be a task with a time attribute to ensure the suite is not looping before a given time. Additionnaly, we may appreciate to have a task which turns aborted when few families/task remain queued for some reason that would prevent the suite to loop.
Center |
---|
Image Added |
Code Block |
---|
language | bash |
---|
title | repeat day 1 |
---|
collapse | true |
---|
|
suite mars
repeat day 1
family last
task logfiles
time 16:00
task date
complete ../stage eq complete and ../check eq complete and ../sapp eq complete and ../statistics eq complete
edit ECF_TRIES '1'
time 16:00
endfamily
# ...
|
repeat date is the most frequently used, while it is the most convenient to run a suite in real-time mode and in catchup-mode.
repeat is incremented once all families/tasks below are complete. A task with a time attibute will prevent the increment before a given time. In Catchup-mode, defstatus complete attribute will inhibit the time dependency
Center |
---|
Image Added |
Code Block |
---|
language | bash |
---|
title | repeat date |
---|
collapse | true |
---|
|
family main
repeat date YMD 20151118 20201212 1
family ref
task dummy
# defstatus complete # uncomment to shift to catchup-mode
time 12:10
# ... |
...