INTEGRITY Dokumentace

Vizualizace Workflows

Zobrazte si vizuální reprezentaci analyzovaného kódu Workflow jako diagram v Cloudflare dashboardu.

Diagram znázorňuje sekvenční i paralelní kroky, podmínky, smyčky a vnořenou logiku. Chcete-li Workflow zobrazit na vysoké úrovni, prohlédněte si diagram se sbalenými smyčkami a podmínkami, nebo si jej rozbalte pro podrobnější pohled.

Příklad diagramu

Diagramy Workflow jsou v současnosti ve verzi beta pro všechny Workers v TypeScriptu a JavaScriptu. Své Workflows si můžete prohlédnout v Cloudflare dashboard ↗ kde uvidíte jejich diagramy.

Typy uzlů

Diagramy se skládají z těchto typů uzlů:

Typ uzlu Popis
StepSleep Pozastaví spuštění Workflow na zadanou dobu.
StepDo Představuje pojmenovaný, opakovatelný krok, který zapouzdřuje jednotku práce.
StepWaitForEvent Pozastaví provádění, dokud nepřijde externí událost.
StepSleepUntil Pozastaví spuštění Workflow do konkrétního data a času.
LoopNode Představuje konstrukci cyklu (for, while, atd.), který opakuje blok logiky.
ParallelNode Seskupí kroky, které se provádějí souběžně, například ty uvnitř Promise.all().
TryNode Představuje try...catch blok, který zpracovává chyby uvnitř Workflow.
BlockNode Seskupí sekvenci kroků do logického bloku pro účely zobrazení.
IfNode Představuje podmíněnou větev založenou na if/else výraz.
SwitchNode Představuje switch příkaz, který rozděluje provádění mezi několik větví case.
StartNode Označuje vstupní bod Workflow nebo definici funkce.
FunctionCall Představuje volání pojmenované funkce v kódu Workflow.
FunctionDef Představuje definici funkce použité ve Workflow.
BreakNode Představuje break příkaz, který předčasně ukončí smyčku.

Pořadí vykonávání

Každý uzel má starts a resolves pole, které sleduje pořadí provádění. Tyto indexy udávají, kdy byl daný promise spuštěn a kdy skončil, vzhledem k prvnímu promise, který se spustil bez okamžitého dokončení. To odpovídá svislému umístění v diagramu (tj. všechny kroky s starts: 1 se zobrazí přímo v textu).

Při parsování nevyčkané (unawaited) promises nebo Promise.all() volání je přiřazeno pořadové číslo uložené v starts pole. Když await je pro tento promise zaznamenáno, číslo vstupu se zvýší a uloží se jako číslo výstupu v resolves pole. Díky tomu může diagram určit, které promise běží souběžně a kdy se jednotlivé z nich dokončí vzhledem k ostatním.

Pokud se na kroky čeká (await) již v místě jejich deklarace, starts a resolves bude undefined a Workflow se provede v pořadí, v jakém kroky vidí runtime.