Versions Compared

Key

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

...

Horizontal Navigation Bar


Button Group

Button Hyperlink
titlePrevious
typestandard
urlhttps://confluence.ecmwf.int/display/ECFLOW/Time+Dependencies
Button Hyperlink
titleUp
typestandard
urlhttps://softwareconfluence.ecmwf.int/wiki/display/ECFLOW/Going+Further
Button Hyperlink
titleNext
typestandard
urlhttps://confluence.ecmwf.int/display/ECFLOW/Add+a+Cron


In this section we show an alternative to time-based attributes, using time triggers.

The following suite based generated variables are available for time-based triggers.

(In ecflow_ui, select a suite, then look at the variables tab)

  • DD              day of the month
  • DOW           day of the week, 0-6, where 0 is sundaySunday
  • DOY            day of the year
  • ECF_DATE  YYYYMMDD   year, month, day format. This has the same format as repeat date. 
  • MM             month 01-12
  • TIME           HHMM
  • YYYY          year

These time-based variables on the suite, use the suites calendar. The suites calendar can be configured with the clock attribute.

...

Code Block
time 23:00                  # trigger :TIME == 2300
date 1.*.*                  # trigger :DD == 1
day monday                  # trigger :DOW == 1

The ':' means a search for the variable up the node tree.

...

Warning

It should be noted that relative time( time +00:01) are not possible with time-based triggers, and time series are more problematic.

...


Let us modify the previous definition file for family f2.
For brevity, we have omitted the previous family f1


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 f2
     edit SLEEP 20
     task t1
        trigger :ECF_DATE ==20200720 and :TIME >= 1000
     task t2
         trigger :DOW == 4 and :TIME >= 1300  
     task t3
         trigger :DD == 1 and :TIME >= 1200
     task t4
         trigger (:DOW == 1 and :TIME >= 1300) or (:DOW == 5 and :TIME >= 1000) 
     task t5
         trigger :TIME == 0002              # 2 minutes past midnight
 endfamily
endsuite


Python

For brevity, we have left out family f1. In python this would be:

...

What to do

  1. Make the changes to the suite definition file
  2. Replace the suite
    python:  python3 test.py; python3 client.py
    text:       ecflow_client --suspend=/test  ;  ecflow_client --replace=/test  test.def
  3. ecflow_ui  has a special window to explain why a task is queued. Select a queued task and click on the 'Why tab'
  4. Vary the time triggers so that all task runs

...

Horizontal Navigation Bar


Button Group

Button Hyperlink
titlePrevious
typestandard
urlhttps://confluence.ecmwf.int/display/ECFLOW/Time+Dependencies
Button Hyperlink
titleUp
typestandard
urlhttps://softwareconfluence.ecmwf.int/wiki/display/ECFLOW/Going+Further
Button Hyperlink
titleNext
typestandard
urlhttps://confluence.ecmwf.int/display/ECFLOW/Add+a+Cron


...