La mise en veille d'une exécution de workflow vous permet d'interroger un service externe ou d'attendre la fin d'une opération de longue durée. La fonction de bibliothèque standard sys.sleep suspend l'exécution pendant un nombre de secondes spécifié, jusqu'à un maximum de 31 536 000 (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" } } ] } }