ポーリングを使用して待機する

sys.sleep 標準ライブラリ関数は、指定された秒数から最大 31,536,000 秒(1 年間)実行を一時停止します。

ワークフローの一時停止

ワークフローは、その定義にスリープ ステップを追加することで、実行を一時停止できます。このステップには、sys.sleep の呼び出しと、ワークフローを一時停止する期間を秒単位で記述します。

YAML

  - STEP_NAME:
      call: sys.sleep
      args:
          seconds: SLEEP_IN_SECONDS
    

JSON

    [
      {
        "STEP_NAME": {
          "call": "sys.sleep",
          "args": {
            "seconds": "SLEEP_IN_SECONDS"
          }
        }
      }
    ]
    

データのポーリング

sys.sleep を使用すると、指定した間隔でデータをポーリングすることもできます。たとえば、特定の条件が満たされるまで API をポーリングできます。

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"
          }
        }
      ]
    }
  }