EVL

Table of Contents


Products, services and company names referenced in this document may be either trademarks or registered trademarks of their respective owners.

Copyright © 2017–2021 EVL Tool, s.r.o.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.

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

syntax/Sleep
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

  1. 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
    
  2. To fire 100 jobs in parallel, but shifted by 20 seconds:
    for i {1..100}
    do
      Run $i.evl
      Sleep 20
    done
    Wait