Horizontal Navigation Bar | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
The condition can be signalled by an event. For example, event t2:b
might indicate that task t2 did not manage to produce the expected result, so
we do not need to run task t4.
complete rather than running it.
the task will set itself complete.
complete expression evaluation takes precedence over the trigger.
Completes can be between tasks, between families, or both.
It can be used in conjunction with a trigger. For example:
Text
Code Block |
---|
# Definition of the suite test. suite test edit ECF_INCLUDE "$HOME/course" # replace '$HOME' with the path to your home directory edit ECF_HOME "$HOME/course" family f1 edit SLEEP 20 task t1 task t2 trigger t1 eq complete # task t2 will only start when task t1 is complete event a # task t2 will set an event a event b # task t2 will set an event b task t3 trigger t2:a # task t3 will start when event a is set in task t2 task t4 trigger t2 eq complete # task t4 will start when task t2 is complete complete t2:b # task t4 will complete if event b is set in task t2 endfamily endsuite |
Python
Code Block | ||||
---|---|---|---|---|
| ||||
import os from ecflow import Defs,Suite,Family,Task,Edit,Trigger,Complete,Event def create_family_f1(): return Family("f1", Edit(SLEEP= 20), Task("t1"), Task("t2", Trigger("t1 == complete"), Event("a"), Event("b")), Task("t3", Trigger("t2:a")), Task("t4", Trigger("t2 == complete"), Complete("t2:b"))) print("Creating suite definition") home = os.path.join(os.getenv("HOME"), "course") defs = Defs( Suite("test", Edit(ECF_INCLUDE=home,ECF_HOME=home), create_family_f1())) print(defs) print("Checking job creation: .ecf -> .job0") print(defs.check_job_creation()) print("Saving definition to file 'test.def'") defs.save_as_defs("test.def") |
What to do
- Update test.def or test.py to add a complete expression to task t4
- Replace the suite
python: python python3 test.py; python python3 client.py
text: ecflow_client --suspend=/test ; ecflow_client --replace=/test test.def - Observe the tasks in ecflow_ui
- See the triggers by selecting t4
- See the trigger relation by clicking on the arrow
- See the triggers in the tree, using the Show menu
- Note the icon indicating that the task has not run
- You can To check the triggers modify task t2 to check that so that event b is not triggered; task t4 will should run when the event is not set t2 completes.
Horizontal Navigation Bar | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...