← Cloudflare Workflows / workflows / build
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.
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.