MuleSoft - Puntos finales

Los puntos finales incluyen básicamente aquellos componentes que activan o inician el procesamiento en un flujo de trabajo de la aplicación Mule. Se les llamaSource en Anypoint Studio y Triggersen el Centro de Diseño de Mule. Un punto final importante en Mule 4 esScheduler component.

Punto final del planificador

Este componente funciona en condiciones basadas en el tiempo, lo que significa que nos permite activar un flujo siempre que se cumpla una condición basada en el tiempo. Por ejemplo, un programador puede activar un evento para iniciar un flujo de trabajo de Mule cada, digamos 10 segundos. También podemos utilizar una expresión Cron flexible para activar un punto final del planificador.

Puntos importantes sobre el programador

Al usar el evento del Programador, debemos ocuparnos de algunos puntos importantes como se indica a continuación:

  • Scheduler Endpoint sigue la zona horaria de la máquina donde se ejecuta el tiempo de ejecución de Mule.

  • Supongamos que si una aplicación Mule se está ejecutando en CloudHub, el Programador seguirá la zona horaria de la región en la que se está ejecutando el trabajador de CloudHub.

  • En un momento dado, solo puede estar activo un flujo desencadenado por el punto final del planificador.

  • En el clúster de tiempo de ejecución de Mule, el punto final del planificador se ejecuta o se activa solo en el nodo principal.

Formas de configurar un programador

Como se mencionó anteriormente, podemos configurar un punto final del programador para que se active en un intervalo fijo o también podemos dar una expresión Cron.

Parámetros para configurar un programador (para intervalo fijo)

Los siguientes son los parámetros para configurar un programador para activar un flujo a intervalos regulares:

Frequency- Básicamente describe a qué frecuencia el punto final del planificador activará el flujo de mulas. La unidad de tiempo para esto se puede seleccionar en el campo Unidad de tiempo. En caso de que no proporcione ningún valor para esto, utilizará el valor predeterminado que es 1000. Por otro lado, si proporciona 0 o un valor negativo, también utilizará el valor predeterminado.

Start Delay- Es el tiempo que debemos esperar antes de activar el flujo de Mule por primera vez una vez iniciada la aplicación. El valor del retardo de inicio se expresa en la misma unidad de tiempo que la frecuencia. Su valor predeterminado es 0.

Time Unit- Describe la unidad de tiempo para Frecuencia y Retardo de inicio. Los posibles valores de la unidad de tiempo son milisegundos, segundos, minutos, horas, días. El valor predeterminado es milisegundos.

Parámetros para configurar un programador (para expresión Cron)

En realidad, Cron es un estándar que se utiliza para describir la información de fecha y hora. En caso de que use la expresión Cron flexible para hacer que el Programador se active, el Punto final del Programador realiza un seguimiento de cada segundo y crea un evento Mule siempre que la expresión Quartz Cron coincida con la configuración de fecha y hora. Con la expresión Cron, el evento se puede activar solo una vez o en intervalos regulares.

La siguiente tabla muestra la expresión de fecha y hora de seis configuraciones requeridas:

Atributo Valor
Segundos 0-59
Minutos 0-59
Horas 0-23
Dia del mes 1-31
Mes 1-12 o ENE-DIC
Día de la semana 1-7 o SUN-SAT

A continuación se dan algunos ejemplos de expresiones Quartz Cron compatibles con el punto final del planificador:

  • ½ * * * * ? - significa que el programador se ejecuta cada 2 segundos del día, todos los días.

  • 0 0/5 16 ** ? - significa que el programador se ejecuta cada 5 minutos a partir de las 4 pm y termina a las 4:55 pm, todos los días.

  • 1 1 1 1, 5 * ? - significa que el planificador se ejecuta el primer día de enero y el primer día de abril, todos los años.

Ejemplo

El siguiente código registra el mensaje "hola" cada segundo:

<flow name = "cronFlow" doc:id = "ae257a5d-6b4f-4006-80c8-e7c76d2f67a0">
   <doc:name = "Scheduler" doc:id = "e7b6scheduler8ccb-c6d8-4567-87af-aa7904a50359">
      <scheduling-strategy>
         <cron expression = "* * * * * ?" timeZone = "America/Los_Angeles"/>
      </scheduling-strategy>
   </scheduler>
   <logger level = "INFO" doc:name = "Logger" 
      doc:id = "e2626dbb-54a9-4791-8ffa-b7c9a23e88a1" message = '"hi"'/>
</flow>