Menunggu menggunakan polling

Fungsi library standar sys.sleep menangguhkan eksekusi selama jumlah detik yang ditentukan hingga maksimum 31536000 (satu tahun).

Menjeda alur kerja

Anda dapat menjeda eksekusi alur kerja dengan menambahkan langkah tidur ke definisi alur kerja Anda. Langkah ini mencakup panggilan ke sys.sleep dan menentukan dalam detik berapa lama Anda ingin menjeda alur kerja:

YAML

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

JSON

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

Jajak pendapat untuk data

Anda juga dapat menggunakan sys.sleep untuk melakukan polling pada data selama interval tertentu. Misalnya, Anda mungkin ingin melakukan polling pada API sampai kondisi tertentu terpenuhi:

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