La fonction de bibliothèque standard sys.sleep
suspend l'exécution du nombre de secondes spécifié à un maximum de 3 153 6000 (un an).
Suspendre un workflow
Vous pouvez suspendre l'exécution d'un workflow en ajoutant une étape de veille à la définition de votre workflow. Cette étape inclut un appel à sys.sleep
et spécifie la durée en secondes pendant laquelle vous souhaitez suspendre le workflow:
YAML
- STEP_NAME: call: sys.sleep args: seconds: SLEEP_IN_SECONDS
JSON
[ { "STEP_NAME": { "call": "sys.sleep", "args": { "seconds": "SLEEP_IN_SECONDS" } } } ]
Interrogation des données
Vous pouvez également utiliser sys.sleep
pour interroger des données sur un intervalle donné. Par exemple, vous pouvez interroger une API jusqu'à ce qu'une condition spécifique soit remplie:
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" } } ] } }