Paralelo
Ejecutar bloques hijos simultáneamente dentro de un contenedor
El bloque Paralelo es un bloque contenedor en TradingGoose que ejecuta bloques hijos simultáneamente.
Los bloques Paralelo son nodos contenedores. Arrastra bloques hijos dentro del paralelo en el lienzo. Las aristas entrantes entran a través de Inicio Paralelo, y las salidas de los hijos se reconectan a Fin Paralelo antes de que el flujo de trabajo continúe fuera del contenedor.
Descripción general
El bloque Paralelo te permite:
Distribuir trabajo: Procesa múltiples elementos simultáneamente
Acelerar la ejecución: Ejecuta operaciones independientes simultáneamente
Manejar operaciones masivas: Procesa grandes conjuntos de datos de manera eficiente
Agregar resultados: Recopila las salidas de todas las ejecuciones paralelas
Opciones de configuración
Tipo de paralelo
Elige entre dos tipos de ejecución paralela:
Paralelo basado en conteo - Ejecuta un número fijo de instancias paralelas.
Úsalo cuando necesites ejecutar la misma operación varias veces simultáneamente.
Example: Run 5 parallel instances
- Instance 1 ┐
- Instance 2 ├─ All execute simultaneously
- Instance 3 │
- Instance 4 │
- Instance 5 ┘Paralelo basado en colección - Distribuye una colección entre instancias paralelas.
Cada instancia procesa un elemento de la colección simultáneamente.
Example: Process ["task1", "task2", "task3"] in parallel
- Instance 1: Process "task1" ┐
- Instance 2: Process "task2" ├─ All execute simultaneously
- Instance 3: Process "task3" ┘Cómo usar bloques Paralelo
Crear un bloque Paralelo
- Arrastra un bloque Paralelo desde la barra de herramientas a tu lienzo
- Configura el tipo de paralelo y los parámetros
- Arrastra los bloques hijos que deberían ejecutarse en paralelo dentro del contenedor
- Conecta el flujo entrante a Inicio Paralelo, y conecta las salidas de los hijos de vuelta a Fin Paralelo antes de continuar fuera del contenedor
Acceder a los resultados
Cuando un bloque paralelo finaliza, selecciona su salida results en el menú de referencias. Sustituye parallel-id por el ID real del contenedor:
<parallel-id.results>: arreglo de resultados de todas las instancias paralelas, ordenado por índice de instancia
Casos de uso de ejemplo
Procesamiento por lotes de API
Escenario: procesar varias llamadas a la API de forma simultánea
- Bloque paralelo con una colección de endpoints de API
- Dentro del paralelo: el bloque de API llama a cada endpoint
- Después del paralelo: procesa todas las respuestas en conjunto
Procesamiento con varios modelos de IA
Escenario: obtener respuestas de varios modelos de IA
- Paralelo basado en colección sobre una lista de ID de modelos (p. ej., ["gpt-4o", "claude-3.7-sonnet", "gemini-2.5-pro"])
- Dentro del paralelo: el modelo del agente se establece en el elemento actual de la colección
- Después del paralelo: compara y selecciona la mejor respuesta
Funciones avanzadas
Agregación de resultados
Los resultados de todas las instancias paralelas se recopilan automáticamente:
// In a Function block after the parallel
const allResults = <parallel-id.results>;
return allResults;Aislamiento de instancias
Las salidas de bloques y el elemento actual se registran por instancia, pero las variables del flujo de trabajo se comparten. Las escrituras simultáneas pueden entrar en conflicto; devuelve salidas por elemento y agrégalas después del bloque Parallel.
Los errores de bloque no gestionados pueden hacer fallar la ejecución; el paralelismo no garantiza aislamiento de errores. Conecta rutas de error dentro del contenedor cuando necesites recuperación.
Limitaciones
Los bloques contenedores (bucles y paralelos) no se pueden anidar entre sí. Esto significa:
- No puedes colocar un bloque de bucle dentro de un bloque paralelo
- No puedes colocar otro bloque paralelo dentro de un bloque paralelo
- No puedes colocar ningún bloque contenedor dentro de otro bloque contenedor
Aunque la ejecución paralela es más rápida, ten en cuenta:
- Los límites de frecuencia de la API al hacer solicitudes simultáneas
- El uso de memoria con conjuntos de datos grandes
- La ejecución por cantidad tiene un máximo de 20 instancias; la ejecución por colección crea una instancia por elemento y no usa ese límite. Divide las colecciones grandes en lotes.
Paralelo vs bucle
Cómo saber cuándo usar cada uno:
| Característica | Paralelo | Bucle |
|---|---|---|
| Ejecución | Concurrente | Secuencial |
| Velocidad | Más rápido para operaciones independientes | Más lento pero ordenado |
| Orden | La finalización varía; los resultados siguen el índice | Mantiene el orden |
| Caso de uso | Operaciones independientes | Operaciones dependientes |
| Uso de recursos | Mayor | Menor |
Entradas y salidas
Tipo de paralelismo: Elige entre 'count' o 'collection'
Cantidad: Número de instancias que se ejecutarán (basado en count)
Colección: Array u objeto a distribuir (basado en colección)
parallel.currentItem: Elemento para esta instancia
parallel.index: Número de instancia (basado en 0)
parallel.items: Colección completa (basado en colección)
results: Array con los resultados de todas las instancias
Acceso: Disponible en bloques después del paralelo
Buenas prácticas
- Solo operaciones independientes: Asegúrate de que las operaciones no dependan entre sí
- Gestiona los límites de velocidad: Agrega retrasos o limitación de velocidad para flujos de trabajo con uso intensivo de API
- Manejo de errores: Cada instancia debe gestionar sus propios errores de forma controlada