Punto de Control 2
En el punto de control vamos a repasar los conceptos teóricos para finalizar el último nivel del curso de Mulesoft Developer. Ya sé que la teoría es un rollo, pero voy a intentar que no se os atragante con algún que otro dibujito. ¿Os parece?
En este bloque hemos aprendido a utilizar varios Scopes:
- For Each para procesar una colección de elementos, de un Payload, de forma secuencial.
- Batch Job, Batch Steps y Batch Aggregators para procesar una colección de elementos y aplicar ciertas acciones.
For Each Scope
Este componente pertenece al grupo Scope y nos permite separar las posiciones de un Array o un objeto, que se le indique dentro de la casilla Collection, para ejecutarlos de forma secuencial posición a posición.
A continuación, os muestro los parámetros del componente:
Los apartados tienen la siguiente finalidad:
- Collection: Será el Array u objeto de datos que el bucle For Each irá recorriendo. En este campo son válidos tanto Payloads, variables o atributos, siempre y cuando se puedan recorrer.
- Counter Variable Name: Este valor será el nombre del contador, se le asignará el número de posiciones que tenga el Array u objeto que se ha indicado en el campo Collection.
- Batch Size: Será el incremento de cada iteración. En el caso de la imagen, se recorrerá de 1 en 1.
- Root Message Variable Name: Este campo tiene como valor por defecto rootMessage, os recomiendo no modificarlo. Se utiliza para hacer referencia a la colección de mensajes completa y sin dividir.
Batch Job Scope
El procesamiento por lotes es una forma de procesar registros por lotes (Batch) o en colecciones. La principal ventaja de los trabajos por lotes es que se ejecutan en paralelo y, por lo tanto, proporcionan el máximo rendimiento.
A diferencia del For Each, que dividía una colección de datos «Collection» y procesaba posición a posición de forma secuencial y síncrona, la segunda posición no se procesaba si la primera no había finalizado. Por el contrario, la ventaja que nos proporciona el componente Batch Job es el procesamiento de esta colección de datos de forma asíncrona.
Esto es debido a que se separan todos los registros de la colección por bloques, indicados en el parámetro «Batch Block size» que se muestra a continuación:
Batch Step y Batch Aggregator
Los Batch Jobs pueden contener 1 o muchos Batch Steps que se irán ejecutando de forma secuencial.
Cada Batch Step está dividido en Processors y Aggregators:
El apartado de Processors nos servirá para añadir los componentes que se ejecutaran en ese paso. Contendrá el procesamiento de los registros de cada elemento de la colección de datos del Batch Job. Se podrá mejorar el Batch Job proporcionando filtros para limitar el procesamiento solo a los registros que se hayan elegido en el filtrado.
En la sección derecha del Batch Step se encuentra Aggregator, es necesario utilizar el componente Batch Aggregator para poder añadir componentes dentro de esta sección. Este componente permite procesar los registros del bloque del Batch Step en grupo, que se indicará en el campo Aggregator Size.
On Complete Batch Job
Este apartado del Batch Job nos proporcionará un resumen de los registros procesados y de los que han fallado.
Cada Batch Job contiene 3 fases:
- Cargar y despachar. En esta fase el evento de Mule convierte el Payload en una colección de registros para poder ser procesados en lotes.
- Proceso. Se procesan los registros según la configuración que se ha indicado en el bloque del Batch Step.
- On Complete. En esta fase se crea un informe o resumen de los registros que se han procesado dentro del Batch Job.
Espero que os haya gustado este bloque. Para finalizar, os dejo un pequeño test del punto de control para validar vuestros conocimientos y poder seguir dándole caña afianzando conocimientos.
Por cierto, felicidades por llegar hasta está clase, ya tienes los conocimientos necesarios para hacer el examen de Mulesoft Developer.
¡Ponte a prueba con el test del punto de control!
Clases del curso
- 1. Trigger de un evento Mule con archivos (28:12)
- 2. Sincronizar datos con Watermarks (37:01)
- 3. Sincronizar con Watermark y Object Store (58:54)
- 4. Manipular mensajes con JMS Active MQ (27:21)
- Punto de control 1
- 5. Procesar ítems con For Each (28:39)
- 6. Procesar datos con Batch Job (22:24)
- 7. Filtrar y agregar con Batch Step y Aggregator (13:38)
- Punto de control 2