Sincronización de Tareas en Paralelo y Bucle Wait-For-All - Flujo de trabajo de n8n

Ejecuta múltiples sub-flujos de trabajo asíncronos en paralelo usando webhooks de n8n y espera de forma síncrona a que todas las tareas completen usando un patrón robusto de bucle de nodos de n8n. Ideal para procesos largos.

Vista previa del flujo

¿Listo para automatizar?

Descarga esta plantilla de flujo de trabajo de n8n y comienza a usarla al instante.

¿Para quién es ideal?

Desarrolladores de automatización que necesiten ejecutar tareas largas concurrentemente dentro de n8n.
Usuarios que buscan plantillas avanzadas de n8n para un control de flujo y sincronización robustos.
Equipos técnicos que desarrollan procesos de backend fiables y escalables con n8n.
Cualquier persona que necesite implementar una lógica de "esperar a que terminen todos" a través de ejecuciones de flujo de trabajo separadas de n8n.

Descripción general

Este flujo de trabajo avanzado de n8n demuestra un patrón de diseño fundamental para gestionar la ejecución asíncrona y en paralelo de tareas. Cuando tienes una lista de elementos que requieren un tiempo de procesamiento significativo (por ejemplo, generar informes, transformación masiva de datos), ejecutarlos secuencialmente es ineficiente. Este patrón especializado de flujo de trabajo de n8n utiliza una relación padre-hijo donde el padre inicia simultáneamente múltiples sub-flujos de trabajo independientes (mediante llamadas webhook) y luego entra en un bucle de espera sofisticado, anclado por el nodo de n8n Webhook Callback Wait. Esto asegura que la ejecución padre solo continúe después de recibir confirmación (a través de callbacks de reanudación webhook) de todos los sub-flujos de trabajo iniciados. Esta plantilla de flujo de trabajo de n8n es esencial para construir sistemas de automatización altamente concurrentes y resilientes dentro de n8n.

Cómo funciona


  1. Disparo e Inicialización: El flujo de trabajo principal de n8n comienza mediante un disparo manual de n8n. Utiliza un nodo Code de n8n para simular múltiples elementos de datos que requieren procesamiento en paralelo. Un nodo Set de n8n inicializa la variable de estado crucial finishedSet (un array vacío) para rastrear las tareas completadas.

  2. Despacho en Paralelo: El nodo Split In Batches de n8n itera sobre los elementos simulados. Para cada elemento, un nodo HTTP Request de n8n llama al endpoint webhook de la ejecución del sub-flujo de trabajo separado, pasando el ID del elemento y, fundamentalmente, la URL de reanudación única del flujo padre ($execution.resumeUrl) en una cabecera de callback.

  3. Ejecución del Sub-flujo de Trabajo: El flujo de trabajo hijo (que se ejecuta por separado) recibe la solicitud a través de su disparador Webhook de n8n, responde inmediatamente para evitar que el Request HTTP del padre se bloquee, y luego simula el tiempo de procesamiento requerido.

  4. Callback y Reanudación: Una vez que la subtarea finaliza, utiliza un nodo HTTP Request de n8n para golpear la URL webhook de reanudación específica del flujo de trabajo padre (obtenida de la cabecera callbackurl), señalizando su finalización y pasando el ID del elemento completado.

  5. Bucle de Sincronización (Padre): El flujo del flujo de trabajo padre es gestionado por un bucle: Comprueba la condición If All Finished. Si la sincronización no está completa, se pausa en el nodo designado Webhook Callback Wait de n8n. Al ser reanudado por un callback de un sub-flujo de trabajo, un nodo Code de n8n actualiza el array finishedSet con el ID del elemento recién finalizado. El proceso entonces vuelve al nodo If All Finished para verificar el recuento de nuevo.

  6. Finalización: Solo cuando el número de elementos en finishedSet coincide con el número total de elementos despachados originalmente, el flujo de trabajo padre de n8n continúa hasta el paso final.

Guía de instalación


  1. Importar: Importa todo este JSON del flujo de trabajo de n8n a tu instancia de n8n.

  2. Separar el Sub-flujo de Trabajo: Los nodos destinados a la ejecución hija (comenzando con el nodo Webhook etiquetado como 'Webhook' en la ruta parallel-subworkflow-target y los nodos siguientes) deben copiarse y pegarse en un flujo de trabajo de n8n nuevo y separado. Activa este sub-flujo de trabajo.

  3. Configuración del Entorno: Para que el flujo de trabajo padre de n8n inicie a los hijos, debes configurar la variable de entorno WEBHOOK_URL en la configuración de tu instancia de n8n. Esta URL debe ser la URL base donde se pueda alcanzar el endpoint webhook público del flujo de trabajo hijo. Si se aloja uno mismo (self-hosting), asegúrate de que apunte al servicio o dominio interno correcto.

  4. Activación: Activa ambas plantillas de flujo de trabajo de n8n (padre e hijo) para asegurar que los endpoints webhook estén activos.

  5. Ejecución: Ejecuta manualmente el flujo de trabajo padre de n8n para observar el despacho paralelo y el patrón de espera síncrona.

Detalles del nodo

Manual Trigger: When clicking ‘Test workflow’ (Al hacer clic en 'Probar flujo de trabajo'). Funciona como el disparador inicial de n8n para comenzar la ejecución padre.
Code Node: Simulate Multi-Item for Parallel Processing (Simular Múltiples Elementos para Procesamiento en Paralelo). Genera un array de tres elementos (requestId) para simular las tareas que requieren ejecución en paralelo.
Split In Batches Node: Loop Over Items (Iterar sobre Elementos). Gestiona la iteración, asegurando que el nodo HTTP Request de n8n se ejecute por cada elemento.
Set Node: Initialize finishedSet (Inicializar finishedSet). Crea la variable de estado inicial finishedSet como un array vacío, crucial para rastrear el estado de sincronización en el flujo de trabajo de n8n.
HTTP Request Node: Start Sub-Workflow via Webhook (Iniciar Sub-flujo de Trabajo vía Webhook). Este nodo de n8n inicia las ejecuciones de sub-flujos de trabajo en paralelo. Configuración Clave: Pasa la URL de reanudación única del padre ($execution.resumeUrl) en la cabecera callbackurl.
If Node: If All Finished (Si Todos Han Terminado). Este nodo central de sincronización de n8n comprueba si el recuento de elementos finalizados coincide con el recuento de elementos originales, controlando si el flujo se pausa o continúa.
Wait Node: Webhook Callback Wait (Esperar Callback Webhook). Pausa la ejecución del flujo de trabajo padre de n8n hasta que una llamada webhook externa específica alcanza su endpoint de reanudación único. Esto actúa como la barrera de sincronización.
Code Node: Update finishedSet (Actualizar finishedSet). Tras la reanudación, este nodo de n8n usa JavaScript para actualizar y añadir de forma segura el finishedItemId recién finalizado desde el payload del webhook al estado rastreado en el array finishedSet.
Webhook Node (Sub-Workflow): Actúa como el disparador externo de n8n (parallel-subworkflow-target) para las instancias de ejecución de tareas en paralelo.
HTTP Request Node (Sub-Workflow): Call Resume on Parent Workflow (Llamar a Reanudar en el Flujo de Trabajo Padre). Ejecuta el callback crucial golpeando la URL de reanudación del flujo de trabajo padre. Usa configuración de reintentos (retryOnFail: true, waitBetweenTries: 3000ms) para mitigar posibles condiciones de carrera si múltiples subtareas finalizan simultáneamente e intentan reanudar el flujo de trabajo padre de n8n.

Flujos de trabajo de n8n relacionados

Gratis

Nodos: 11 Nodos
Actualizado: Diciembre 26 2025
Ver todo
Creado por
Hubschrauber
Hubschrauber

Software developer specializing in "back-end plumbing" to connect and sync data between large corporate systems, enabling application distribution/migration, scaling, and containerization. Using n8n for various orchestration tasks both at home and "on the job."

Presentado*