Esperar mediante el sondeo

La función de biblioteca estándar sys.sleep suspende la ejecución durante la cantidad de segundos especificada a un máximo de 3,153,6000 (un año).

Cómo pausar un flujo de trabajo

Puedes pausar la ejecución de un flujo de trabajo si agregas un paso de suspensión a la definición de tu flujo de trabajo. En este paso, se incluye una llamada a sys.sleep y se especifica en segundos durante cuánto tiempo deseas pausar el flujo de trabajo:

YAML

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

JSON

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

Encuesta para datos

También puedes usar sys.sleep para sondear los datos de un intervalo determinado. Por ejemplo, es posible que desees consultar una API hasta que se cumpla una condición específica:

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