Entender cómo manejar colecciones de datos en Mulesoft es clave, y aquí te explicaré cómo dominar los tres principales scopes: For Each, Parallel For Each y Batch Job.
For Each
El scope For Each es tu herramienta para interactuar con listas o conjuntos de datos individualmente. Veamos cómo:
- Procesamiento Sincrónico: Cada ítem de tu colección es procesado de forma individual, asegurando un tratamiento completo antes de avanzar al siguiente.
- Ejecución Secuencial: Puedes insertar procesadores como transformadores o conectores dentro del For Each que actuarán secuencialmente en cada elemento.
- Soporte de Streaming: Ideal para colecciones grandes, permite procesar los datos sin saturar la memoria.
- Payload Post-Procesamiento: Al finalizar el scope, el payload retorna intacto, permitiendo que el flujo de datos prosiga sin contratiempos.
Observa cómo se implementa este scope en un flujo que envía información de vuelos a un sistema externo:
Parallel For Each
El Parallel For Each es una versión potenciada del For Each que te permite procesar elementos en paralelo, acelerando significativamente el tiempo de procesamiento.
- Configuración del ‘Parallel For Each’: Configura este componente para procesar múltiples ítems simultáneamente.
- Procesamiento Concurrente: Aprovecha la capacidad de tu sistema al máximo, ejecutando varios procesos a la vez.
- Ejecución y Streaming: Aunque trabaja en paralelo, cada elemento es procesado secuencialmente por los procesadores internos, con soporte de streaming.
- Colección de Destino: Crea una colección de salida correspondiente con los resultados procesados.
- Manejo de Payloads y Errores: Gestiona el payload final y los errores de forma inteligente, intentando procesar todos los elementos antes de detener el flujo por errores.
En la siguiente imagen, todos los vuelos son enviados en paralelo a un servicio externo utilizando diferentes llamadas:
Batch Job
El Batch Job es tu aliado para el procesamiento de datos masivos, divididos en registros individuales y manejables:
- Procesamiento de Registros Individuales: Procesa cada registro de tu colección paso a paso.
- División de Mensajes Grandes: Ideal para dividir y gestionar mensajes de gran tamaño.
- Procesamiento Asincrónico: Los registros se procesan en paralelo, optimizando el tiempo y recursos.
El Batch Job divide la colección en bloques procesados en paralelo, como se muestra aquí:
Si deseas profundizar en el Batch Job, te invito a explorar más aquí.
Conclusión
En conclusión, ya sea que optes por el meticuloso For Each, el ágil Parallel For Each o el robusto Batch Job, Mulesoft ofrece soluciones flexibles para el procesamiento de colecciones que se adaptan a cada necesidad. Con estas herramientas, estarás equipado para manejar datos con precisión y eficiencia, asegurando un flujo de información sin interrupciones y optimizado.
Para desarrollar tu habilidad como Mulesoft Developer deja tus datos en el siguiente formulario y te contactaremos:
