EVL – ETL Tool

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

Copyright © 2017–2023 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.

Table of Contents


(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.


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).



evl sleep
  <time>[smhd] [-v|--verbose]

evl sleep
  ( --help | --usage | --version )


Standard options:


print this help and exit


print short usage information and exit

-v, --verbose

print to stderr info/debug messages of the component


print version and exit


  1. To run a job every 15 minutes, ignore failures:
    export EVL_RUN_FAIL=0
    let i=0
    while (( i < 1440 ))
      # Using printf because of proper sorting by file name
      Run flowmon_load.$(printf "%04d" $i).evl  
      Sleep 15m
    let i+=15
  2. To fire 100 jobs in parallel, but shifted by 20 seconds:
    for i {1..100}
      Run $i.evl
      Sleep 20