< Volver al curso

1. Ejecutar eventos en paralelo con Scatter-Gather


En la clase de hoy vamos  a aprender cómo ejecutar eventos en paralelo con Scatter-Gather. Este componente nos permitirá ejecutar más de un evento de Mule 4 al mismo tiempo, o mejor dicho, en paralelo.

Eventos de tipo Multicast

Primero de todo, si no recordáis lo que es un evento de Mule 4, os recomiendo que visitéis la clase 6. Ver datos de un evento de Mule.

Cada evento de Mule contiene una serie de información (payload, variables y atributos), que se va actualizando de forma secuencial, a medida que sucede el Flow que se está ejecutando en el evento actual.

Entrando en la definición rápida de Multicast, en castellano multidifusión, es un tipo de comunicación que permite enviar la información desde un emisor a varios receptores. Os dejo enlace por si queréis ampliar vuestro conocimiento sobre Multicasting

Siguiendo por la parte de Mulesoft, gracias a los eventos de tipo Multicast, es posible ejecutar más de un componente a la vez, o mejor dicho, en paralelo. Mulesoft a este procedimiento le llama, ejecutar eventos de forma concurrente. Esto quiere decir, que para cada componente que se esté ejecutando al mismo tiempo, se generará un evento enteramente dedicado a él, y todo esto en el mismo Flow.

A continuación os muestro un diagrama comparando un evento que se ejecuta de forma secuencial vs un evento que se ejecuta de forma concurrente gracias al Multicasting.

 

 

Componente Scatter-Gather

El componente que se encarga de brindarnos el paralelismo en la ejecución de varios componentes se llama Scatter-Gather.

Scatter-Gather se encarga de enrutar a cada componente (estos componentes deben ser Event Processors), de forma concurrente, y devuelve una colección con todos los resultados.

Esta colección de resultados que se menciona se devuelve en forma de objeto, y dentro de este mismo objeto encontraremos 1 objeto para cada Event Processor que se haya ejecutado. Por lo tanto, si hay 3 Event Processors, el objeto contendrá una lista con 3 objetos.

¿Qué contiene este objeto? Si quieres saber más tendrás que visualizar la clase.

¿Hay alguna forma de fusionar todos los objetos, que me llegan por cada Event Processor, en una sola lista? Lo mismo, en la clase de hoy también se trata este tema.

 

Sin más, Ejecutar eventos en paralelo con Scatter-Gather ¡dentro vídeo!



Clases del curso


< Volver al curso