🇬🇧 EN
🇮🇹 IT

Parallel

Divide l'esecuzione del workflow in più rami nominati che vengono eseguiti simultaneamente. Tutti i rami devono completarsi prima che l'esecuzione prosegua oltre il punto di unione.

Categoria: Controllo di Flusso  ·  Identificatore tipo: parallel

Panoramica

Alcuni workflow devono raccogliere dati da diverse fonti prima di poter fare qualcosa di utile con essi. Senza il nodo Parallel, quelle richieste verrebbero eseguite una dopo l'altra, con ogni step in attesa del completamento del precedente. Il nodo Parallel elimina questa attesa — tutti i rami partono contemporaneamente e vengono eseguiti in modo concorrente. Il workflow poi attende automaticamente al punto di unione fino a quando ogni ramo è completato prima di proseguire.

Questo è particolarmente utile per i pattern di fan-out API: recuperare il profilo di un utente, i suoi ordini recenti e le sue preferenze di notifica tutti in un singolo step, per poi combinare i risultati in una singola email o documento.

Ogni ramo è identificato da un nome a tua scelta. Dopo che tutti i rami sono completati, i loro output sono disponibili come proprietà dell'oggetto di output del nodo Parallel, indicizzati per nome del ramo.

Tutto o niente. Se un singolo ramo fallisce, l'intero nodo Parallel fallisce e gli step successivi non vengono eseguiti. Assicurati che ogni ramo gestisca gli errori in modo appropriato, oppure usa un Logic Gate dopo l'unione parallela per verificare la presenza di dati mancanti.

Configurazione

Campo Stato Descrizione
Rami Obbligatorio Un array di nomi di rami. Ogni nome crea una porta di output (in modalità grafo) o una corsia di esecuzione etichettata (in modalità lineare). Usa nomi brevi e descrittivi come fetch_users, fetch_orders, fetch_products.

Dati di Output

Dopo che tutti i rami sono completati, il nodo Parallel produce un singolo oggetto di output. Ogni chiave in quell'oggetto corrisponde al nome di un ramo, e il suo valore è l'output dell'ultimo step in quel ramo.

// Dati rami denominati fetch_users, fetch_orders, fetch_products {{ parallel_step.output.fetch_users }} {{ parallel_step.output.fetch_orders }} {{ parallel_step.output.fetch_products }} // Accedi ai singoli campi dall'ultimo step di un ramo {{ parallel_step.output.fetch_users.name }} {{ parallel_step.output.fetch_orders.total }}

Esempio di Utilizzo

Fan out verso tre API, poi unisci in una singola email

  1. Aggiungi un nodo Parallel con tre rami: fetch_profile, fetch_orders, fetch_preferences.
  2. In modalità grafo, disegna archi da ogni porta di output del ramo al primo nodo in quel ramo:
    • fetch_profile → HTTP Request a /api/users/{{ trigger.output.user_id }}
    • fetch_orders → HTTP Request a /api/orders?user_id={{ trigger.output.user_id }}
    • fetch_preferences → HTTP Request a /api/preferences/{{ trigger.output.user_id }}
  3. Dopo il punto di unione, aggiungi un nodo Send Email. Fai riferimento a tutti e tre i rami nel corpo dell'email:
    Ciao {{ parallel_step.output.fetch_profile.first_name }}, Hai {{ parallel_step.output.fetch_orders.count }} ordini recenti. La tua impostazione di notifica è: {{ parallel_step.output.fetch_preferences.email_frequency }}.

Suggerimenti e Note

Nodi Correlati