La función de biblioteca estándar sys.sleep
suspende la ejecución durante la cantidad de segundos especificada a un máximo de 3,153,6000 (un año).
Cómo pausar un flujo de trabajo
Puedes pausar la ejecución de un flujo de trabajo si agregas un paso de suspensión a la definición de tu flujo de trabajo. En este paso, se incluye una llamada a sys.sleep
y se especifica en segundos durante cuánto tiempo deseas 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" } } } ]
Encuesta para datos
También puedes usar sys.sleep
para sondear los datos de un intervalo determinado. Por ejemplo, es posible que desees consultar una API hasta que se cumpla una condición específica:
YAML
waitForJobCompletion: 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
{ "waitForJobCompletion": { "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" } } ] } }