Sleep
(since EVL 2.4)
Use ‘Sleep’ to fire previously defined EVL tasks (i.e. jobs/workflow/scripts or waiting for a
file) by ‘Run’ command. Then wait specified amount of <time>
.
<time>
can be specified in seconds, minutes, hours or days, so suffix ‘s’, ‘m’,
‘h’ or ‘d’ need to be specified to the number. If no unit is specified, seconds are
assumed.
Sleep is useful when need to run jobs/workflows in parallel, but shifted way. Or in the case you need to spread many short (but intensive) jobs in the time, so kind of serial, but let them overlap.
While a workflow is invoked by ‘continue’, then already fired Sleep commands are ignored. So restarting a workflow this way will not stuck on already finished Sleeps.
- Sleep
-
is to be used in EVL workflow structure definition file, i.e. in EWS file.
- evl sleep
-
is intended for standalone usage, i.e. to be invoked from command line.
EWS is EVL workflow definition file, for details see man evl-ews(5).
Synopsis
Sleep <time>[smhd] evl sleep <time>[smhd] [-v|--verbose] evl sleep ( --help | --usage | --version )
Options
Standard options:
- --help
-
print this help and exit
- --usage
-
print short usage information and exit
- -v, --verbose
-
print to stderr info/debug messages of the component
- --version
-
print version and exit
Examples
- To run a job every 15 minutes, ignore failures:
export EVL_RUN_FAIL=0 let i=0 while (( i < 1440 )) do # Using printf because of proper sorting by file name Run flowmon_load.$(printf "%04d" $i).evl Sleep 15m let i+=15 done Wait
- To fire 100 jobs in parallel, but shifted by 20 seconds:
for i {1..100} do Run $i.evl Sleep 20 done Wait