Horizontal Navigation Bar |
---|
Button Group |
---|
Button Hyperlink |
---|
title | Previous |
---|
type | standard |
---|
url | https://software.ecmwf.int/wiki/display/ECFLOW/Limits |
---|
|
Button Hyperlink |
---|
title | Up |
---|
type | standard |
---|
url | https://software.ecmwf.int/wiki/display/ECFLOW/Advanced+Topics |
---|
|
Button Hyperlink |
---|
title | Next |
---|
type | standard |
---|
url | https://software.ecmwf.int/wiki/display/ECFLOW/Alias |
---|
|
|
|
Sometimes tasks don't run as expected, and we want to get notification when this is the case.
...
Ecf Script
We will add a new
task /test/f6/t1.
Create new
ecf script file
$HOME/course/test/f6/t1.ecf for which we want to be late.
Code Block |
---|
language | bash |
---|
title | $HOME/course/test/f6/t1.ecf |
---|
|
%include <head.h>
echo "I will now sleep for %SLEEP% seconds"
sleep %SLEEP%
%include <tail.h> |
Text
Let us modify the suite definition file again
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 f6
edit SLEEP 120
task t1
late -c +00:01 # set late flag if task take longer than a minute
endfamily
endsuite |
Python
Code Block |
---|
language | py |
---|
title | $HOME/course/test.py |
---|
|
#!/usr/bin/env python2.7
import os
|
importfrom ecflow import Defs,Suite,Family,Task,Edit,Trigger,Complete,Event,Meter,Time,Day,Date,Label, \
|
def create_family_f6():
f6=ecflow.Family("f6")
f6.add_variable("SLEEP", 120)
RepeatString,RepeatInteger,RepeatDate,InLimit,Limit
|
t1= f6.add_task("t1")
def create_family_f6() :
late = |
ecflow.
late.complete(0,1,True) # hour,minute,relative, set late flag if task take longer than a minute |
t1.add_late(late) returnf6
print"Creatingsuitedefinition"
defs= ecflow.Defs()
suite = defs.add_suite("test")
suite.add_variable("ECF_INCLUDE",Edit(SLEEP=120),
Task("t1",late))
print "Creating suite definition"
home = os.path.join(os.getenv("HOME"), |
)
suite.add_variable("ECF_HOME",
defs = Defs(
Suite("test",
|
os.path.join(os.getenv("HOME"), "course"))
suite.add_family(Edit(ECF_INCLUDE=home,ECF_HOME=home),
create_family_f6() |
defs ("Checking job creation: .ecf -> .job0" |
(defs.check_job_creation())
print("Checking trigger expressions")
assert len(defs.check()) == 0,defs.check()
print("Saving definition to file 'test.def'")
defs.save_as_defs("test.def") |
What to do
- Type in the changes
- Replace the suite definition
- Run the suite, you should see the task late flag set in ecflow_ui
...