|
In the section we show alternative to time based attributes using time triggers.
The following suite based generated variables are available for time based triggers.
Here are examples of time attributes and the corresponding trigger examples
time 23:00 # trigger TIME 2300 date 1.*.* # trigger DD ==1 day monday # trigger DOW ==1 |
Triggers can also use AND/OR logic.
|
|
---|
Let us modify the previous definition file for family f2.
For brevity we have omitted the previous family f1
# 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 f2 edit SLEEP 20 task t1 task t2 trigger DOW == 4 and TIME >= 1300 task t3 trigger DD == 1 and TIME >= 1200 task t4 task t5 trigger TIME == 0002 # 2 minutes past midnight endfamily endsuite |
For brevity we have left out family f1. In python this would be:
import os from ecflow import Defs,Suite,Family,Task,Edit,Trigger,Complete,Event,Meter,Time,Day,Date,Edit def create_family_f2(): return Family("f2", Edit(SLEEP=20), Task("t1"), Task("t2", Trigger("DOW == 4 and TIME >= 1300")), Task("t3", Trigger("DD == 1 and TIME >= 1200")), Task("t4"), Task("t5", Trigger("TIME == 0002"))) # 2 minutes past midnight 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_f2() )) print(defs) print("Checking job creation: .ecf -> .job0") print(defs.check_job_creation()) print("Checking trigger expressions") errors = defs.check() assert len(errors) == 0,errors print("Saving definition to file 'test.def'") defs.save_as_defs("test.def") |
|