Wait using polling

The sys.sleep standard library function suspends execution for the given number of seconds to a maximum of 31536000 (one year).

Pause a workflow

You can pause the execution of a workflow by adding a sleep step to your workflow's definition. This step includes a call to sys.sleep and specifies in seconds how long you want to pause the workflow:

YAML

  
 - 
  
  STEP_NAME 
 
 : 
  
 call 
 : 
  
 sys.sleep 
  
 args 
 : 
  
 seconds 
 : 
  
  SLEEP_IN_SECONDS 
 
  

JSON

  
 [ 
  
 { 
  
 " STEP_NAME 
" 
 : 
  
 { 
  
 "call" 
 : 
  
 "sys.sleep" 
 , 
  
 "args" 
 : 
  
 { 
  
 "seconds" 
 : 
  
 " SLEEP_IN_SECONDS 
" 
  
 } 
  
 } 
  
 } 
  
 ] 
  

Poll for data

You can also use sys.sleep to poll for data over a given interval. For example, you might want to poll an API until a specific condition is met:

YAML

  
 main 
 : 
  
 params 
 : 
  
 [ 
 jobId 
 ] 
  
 steps 
 : 
  
 - 
  
 checkJob 
 : 
  
 call 
 : 
  
 http.get 
  
 args 
 : 
  
 url 
 : 
  
 ${"https://example.com/jobs/" + jobId} 
  
 auth 
 : 
  
 type 
 : 
  
 OAuth2 
  
 result 
 : 
  
 jobStatus 
  
 - 
  
 checkIfDone 
 : 
  
 switch 
 : 
  
 - 
  
 condition 
 : 
  
 ${jobStatus.complete} 
  
 return 
 : 
  
 ${jobStatus} 
  
 - 
  
 wait 
 : 
  
 call 
 : 
  
 sys.sleep 
  
 args 
 : 
  
 seconds 
 : 
  
 60 
  
 next 
 : 
  
 checkJob 
  

JSON

  
 { 
  
 "main" 
 : 
  
 { 
  
 "params" 
 : 
  
 [ 
  
 "jobId" 
  
 ], 
  
 "steps" 
 : 
  
 [ 
  
 { 
  
 "checkJob" 
 : 
  
 { 
  
 "call" 
 : 
  
 "http.get" 
 , 
  
 "args" 
 : 
  
 { 
  
 "url" 
 : 
  
 "${\"https://example.com/jobs/\" + jobId}" 
 , 
  
 "auth" 
 : 
  
 { 
  
 "type" 
 : 
  
 "OAuth2" 
  
 } 
  
 }, 
  
 "result" 
 : 
  
 "jobStatus" 
  
 } 
  
 }, 
  
 { 
  
 "checkIfDone" 
 : 
  
 { 
  
 "switch" 
 : 
  
 [ 
  
 { 
  
 "condition" 
 : 
  
 "${jobStatus.complete}" 
 , 
  
 "return" 
 : 
  
 "${jobStatus}" 
  
 } 
  
 ] 
  
 } 
  
 }, 
  
 { 
  
 "wait" 
 : 
  
 { 
  
 "call" 
 : 
  
 "sys.sleep" 
 , 
  
 "args" 
 : 
  
 { 
  
 "seconds" 
 : 
  
 60 
  
 }, 
  
 "next" 
 : 
  
 "checkJob" 
  
 } 
  
 } 
  
 ] 
  
 } 
  
 } 
  
Design a Mobile Site
View Site in Mobile | Classic
Share by: