Workflowschritte parallel ausführen

Parallele Schritte können die Gesamtausführungszeit für einen Workflow verkürzen, indem mehrere blockierende Aufrufe gleichzeitig ausgeführt werden.

Blockierende Aufrufe wie sleep, HTTP-Aufrufe und Callbacks können zwischen Millisekunden und Tagen dauern. Parallele Schritte sollen bei solchen gleichzeitigen, zeitaufwendigen Vorgängen helfen. Wenn in einem Workflow mehrere blockierende Aufrufe ausgeführt werden müssen, die unabhängig voneinander sind, kann die Gesamtausführungszeit durch die Verwendung paralleler Zweige verkürzt werden, da die Aufrufe gleichzeitig gestartet werden und gewartet wird, bis alle abgeschlossen sind.

Wenn in Ihrem Workflow beispielsweise Kundendaten aus mehreren unabhängigen Systemen abgerufen werden müssen, bevor er fortgesetzt werden kann, sind mit parallelen Zweigen gleichzeitige API-Anfragen möglich. Wenn es fünf Systeme gibt und jedes zwei Sekunden für die Antwort benötigt, kann die sequenzielle Ausführung der Schritte in einem Workflow mindestens zehn Sekunden dauern. Bei paralleler Ausführung kann es nur zwei Sekunden dauern.

Parallelen Schritt erstellen

Erstellen Sie einen parallel-Schritt, um einen Teil Ihres Workflows zu definieren, in dem zwei oder mehr Schritte gleichzeitig ausgeführt werden können.

YAML

  - PARALLEL_STEP_NAME:
      parallel:
        exception_policy: POLICY
        shared: [VARIABLE_A, VARIABLE_B, ...]
        concurrency_limit: CONCURRENCY_LIMIT
        BRANCHES_OR_FOR:
          ...

JSON

  [
    {
      "PARALLEL_STEP_NAME": {
        "parallel": {
          "exception_policy": "POLICY",
          "shared": [
            "VARIABLE_A",
            "VARIABLE_B",
            ...
          ],
          "concurrency_limit": "CONCURRENCY_LIMIT",
          "BRANCHES_OR_FOR":
          ...
        }
      }
    }
  ]

Ersetzen Sie Folgendes:

  • PARALLEL_STEP_NAME: der Name des parallelen Schritts.
  • POLICY (optional): Bestimmt die Aktion, die andere Zweige ausführen, wenn eine unbehandelte Ausnahme auftritt. Die Standardrichtlinie continueAll führt zu keiner weiteren Aktion und alle anderen Zweige werden ausgeführt. Derzeit wird nur die Richtlinie continueAll unterstützt.
  • VARIABLE_A, VARIABLE_B usw.: Eine Liste von beschreibbaren Variablen mit übergeordnetem Bereich, die Zuweisungen innerhalb des parallelen Schritts ermöglichen. Weitere Informationen finden Sie unter Gemeinsam genutzte Variablen.
  • CONCURRENCY_LIMIT (optional): Die maximale Anzahl von Zweigen und Iterationen, die gleichzeitig in einer einzelnen Workflow-Ausführung ausgeführt werden können, bevor weitere Zweige und Iterationen in die Warteschlange gestellt werden. Dies gilt nur für einen einzelnen parallel-Schritt und wird nicht kaskadiert. Muss eine positive Ganzzahl sein und kann entweder ein Literalwert oder ein Ausdruck sein. Weitere Informationen finden Sie unter Gleichzeitigkeitslimits.