Worxflow

Parallel

Le bloc Parallel est un bloc conteneur dans Worxflow qui permet d'exécuter plusieurs instances de blocs simultanément pour un traitement de flux de travail plus rapide.

Le bloc Parallel prend en charge deux types d'exécution concurrente :

Les blocs Parallel sont des nƓuds conteneurs qui exĂ©cutent leur contenu plusieurs fois simultanĂ©ment, contrairement aux boucles qui s'exĂ©cutent sĂ©quentiellement.

Aperçu

Le bloc Parallel vous permet de :

Distribuer le travail : traiter plusieurs éléments simultanément

Accélérer l'exécution : exécuter des opérations indépendantes simultanément

Gérer des opérations en masse : traiter efficacement de grands ensembles de données

Agréger les résultats : collecter les sorties de toutes les exécutions parallÚles

Options de configuration

Type de parallélisation

Choisissez entre deux types d'exécution parallÚle :

Parallel basé sur le comptage - Exécuter un nombre fixe d'instances parallÚles :

Exécution parallÚle basée sur le comptage

Utilisez cette option lorsque vous devez exĂ©cuter la mĂȘme opĂ©ration plusieurs fois simultanĂ©ment.

Example: Run 5 parallel instances
- Instance 1 ┐
- Instance 2 ├─ All execute simultaneously
- Instance 3 │
- Instance 4 │
- Instance 5 ┘

Parallel basé sur une collection - Distribuer une collection à travers des instances parallÚles :

Exécution parallÚle basée sur une collection

Chaque instance traite un élément de la collection simultanément.

Example: Process ["task1", "task2", "task3"] in parallel
- Instance 1: Process "task1" ┐
- Instance 2: Process "task2" ├─ All execute simultaneously
- Instance 3: Process "task3" ┘

Comment utiliser les blocs Parallel

Création d'un bloc Parallel

  1. Faites glisser un bloc Parallel depuis la barre d'outils sur votre canevas
  2. Configurez le type de parallélisation et les paramÚtres
  3. Faites glisser un seul bloc à l'intérieur du conteneur parallel
  4. Connectez le bloc selon vos besoins

AccÚs aux résultats

AprÚs la fin d'un bloc parallÚle, vous pouvez accéder aux résultats agrégés :

  • <parallel.results> : Tableau des rĂ©sultats de toutes les instances parallĂšles

Exemples de cas d'utilisation

Traitement par lots d'API

Scénario : traiter plusieurs appels d'API simultanément

  1. Bloc parallĂšle avec une collection de points de terminaison API
  2. À l'intĂ©rieur du parallĂšle : le bloc API appelle chaque point de terminaison
  3. AprÚs le parallÚle : traitement de toutes les réponses ensemble

Traitement IA multi-modĂšles

Scénario : obtenir des réponses de plusieurs modÚles d'IA

  1. ParallÚle basé sur une collection de modÚles (ex. : ["gpt-4o", "claude-3.7-sonnet", "gemini-2.5-pro"])
  2. À l'intĂ©rieur du parallĂšle : le modĂšle de l'agent est dĂ©fini sur l'Ă©lĂ©ment actuel de la collection
  3. AprÚs le parallÚle : comparer et sélectionner la meilleure réponse

Fonctionnalités avancées

Agrégation des résultats

Les résultats de toutes les instances parallÚles sont automatiquement collectés :

// In a Function block after the parallel
const allResults = input.parallel.results;
// Returns: [result1, result2, result3, ...]

Isolation des instances

Chaque instance parallÚle s'exécute indépendamment :

  • PortĂ©es de variables sĂ©parĂ©es
  • Pas d'Ă©tat partagĂ© entre les instances
  • Les Ă©checs dans une instance n'affectent pas les autres

Limitations

Les blocs conteneurs (Boucles et ParallĂšles) ne peuvent pas ĂȘtre imbriquĂ©s les uns dans les autres. Cela signifie :

  • Vous ne pouvez pas placer un bloc Boucle dans un bloc ParallĂšle
  • Vous ne pouvez pas placer un autre bloc ParallĂšle dans un bloc ParallĂšle
  • Vous ne pouvez pas placer un bloc conteneur dans un autre bloc conteneur

Les blocs parallÚles ne peuvent contenir qu'un seul bloc. Vous ne pouvez pas avoir plusieurs blocs connectés les uns aux autres à l'intérieur d'un parallÚle - seul le premier bloc s'exécuterait dans ce cas.

Bien que l'exécution parallÚle soit plus rapide, soyez attentif à :

  • Limites de taux des API lors de requĂȘtes simultanĂ©es
  • Utilisation de la mĂ©moire avec de grands ensembles de donnĂ©es
  • Maximum de 20 instances simultanĂ©es pour Ă©viter l'Ă©puisement des ressources

ParallĂšle vs Boucle

Comprendre quand utiliser chacun :

FonctionnalitéParallÚleBoucle
ExécutionConcurrenteSéquentielle
VitessePlus rapide pour les opérations indépendantesPlus lente mais ordonnée
OrdrePas d'ordre garantiMaintient l'ordre
Cas d'utilisationOpérations indépendantesOpérations dépendantes
Utilisation des ressourcesPlus élevéePlus faible

Entrées et sorties

  • Type de parallĂšle : Choisissez entre 'count' ou 'collection'

  • Count : Nombre d'instances Ă  exĂ©cuter (basĂ© sur le comptage)

  • Collection : Tableau ou objet Ă  distribuer (basĂ© sur la collection)

  • parallel.currentItem : ÉlĂ©ment pour cette instance

  • parallel.index : NumĂ©ro d'instance (base 0)

  • parallel.items : Collection complĂšte (basĂ© sur la collection)

  • parallel.results : Tableau de tous les rĂ©sultats d'instance

  • AccĂšs : Disponible dans les blocs aprĂšs le parallĂšle

Bonnes pratiques

  • OpĂ©rations indĂ©pendantes uniquement : Assurez-vous que les opĂ©rations ne dĂ©pendent pas les unes des autres
  • GĂ©rer les limites de taux : Ajoutez des dĂ©lais ou une limitation pour les workflows intensifs en API
  • Gestion des erreurs : Chaque instance doit gĂ©rer ses propres erreurs avec Ă©lĂ©gance
Parallel