Pausar la ejecución de un flujo de trabajo te permite sondear un servicio externo o esperar a que se complete una operación de larga duración. La sys.sleep
función de biblioteca estándar suspende la ejecución durante una cantidad específica de segundos, hasta un máximo de 31536000 (un año).
Cómo pausar un flujo de trabajo
Puedes pausar la ejecución de un flujo de trabajo agregando un paso de suspensión a la definición del flujo de trabajo. Este paso incluye una llamada a sys.sleep y especifica en segundos cuánto tiempo quieres pausar el flujo de trabajo:
YAML
- STEP_NAME: call: sys.sleep args: seconds: SLEEP_IN_SECONDS
JSON
[ { "STEP_NAME": { "call": "sys.sleep", "args": { "seconds": "SLEEP_IN_SECONDS" } } } ]
Sondeo de datos
También puedes usar sys.sleep para sondear datos durante un intervalo determinado. Por ejemplo, es posible que desees sondear una API hasta que se cumpla una condición específica:
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" } } ] } }