La funzione della libreria standard sys.sleep
sospende l'esecuzione per il numero di secondi specificato, fino a un massimo di 31536000 (un
anno).
Mettere in pausa un flusso di lavoro
Puoi mettere in pausa l'esecuzione di un flusso di lavoro aggiungendo un passaggio di sospensione alla definizione del flusso di lavoro. Questo passaggio include una chiamata a sys.sleep
e specifica in secondi il tempo per cui vuoi mettere in pausa il flusso di lavoro:
YAML
- STEP_NAME: call: sys.sleep args: seconds: SLEEP_IN_SECONDS
JSON
[ { "STEP_NAME": { "call": "sys.sleep", "args": { "seconds": "SLEEP_IN_SECONDS" } } } ]
Effettuare un sondaggio per i dati
Puoi anche utilizzare sys.sleep
per eseguire il polling dei dati in un determinato intervallo. Ad esempio,
potresti voler eseguire il polling di un'API fino a quando non viene soddisfatta una condizione specifica:
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" } } ] } }