MuleSoft - Endpoints

Os terminais incluem basicamente os componentes que acionam ou iniciam o processamento em um fluxo de trabalho do aplicativo Mule. Eles são chamadosSource no Anypoint Studio e Triggersno Centro de Design de Mule. Um ponto final importante no Mule 4 éScheduler component.

Endpoint do agendador

Este componente funciona em condições baseadas no tempo, ou seja, nos permite acionar um fluxo sempre que uma condição baseada no tempo é atendida. Por exemplo, um planejador pode acionar um evento para iniciar um fluxo de trabalho do Mule a cada, digamos 10 segundos. Também podemos usar a expressão Cron flexível para acionar um ponto final do agendador.

Pontos importantes sobre o Scheduler

Ao usar o evento Scheduler, precisamos cuidar de alguns pontos importantes, conforme fornecido abaixo -

  • O Scheduler Endpoint segue o fuso horário da máquina onde o tempo de execução do Mule está sendo executado.

  • Suponha que se um aplicativo Mule estiver sendo executado no CloudHub, o Scheduler seguirá o fuso horário da região em que o trabalhador CloudHub está sendo executado.

  • A qualquer momento, apenas um fluxo acionado pelo Endpoint do Scheduler pode estar ativo.

  • No cluster de tempo de execução Mule, o Scheduler Endpoint é executado ou disparado apenas no nó primário.

Maneiras de configurar um Scheduler

Conforme discutido acima, podemos configurar um endpoint do agendador para ser disparado em um intervalo fixo ou também podemos fornecer uma expressão Cron.

Parâmetros para configurar um Scheduler (para intervalo fixo)

A seguir estão os parâmetros para definir um programador para acionar um fluxo em intervalos regulares -

Frequency- Basicamente, descreve a frequência com que o Endpoint do Agendador acionará o fluxo Mule. A unidade de tempo para isso pode ser selecionada no campo Unidade de tempo. Caso você não forneça nenhum valor para isso, ele usará o valor padrão que é 1000. Por outro lado, se você fornecer 0 ou um valor negativo, então também usará o valor padrão.

Start Delay- É a quantidade de tempo que devemos esperar antes de acionar o fluxo Mule pela primeira vez, uma vez que o aplicativo é iniciado. O valor do atraso de início é expresso na mesma unidade de tempo que a frequência. Seu valor padrão é 0.

Time Unit- Descreve a unidade de tempo para Freqüência e Atraso de início. Os valores possíveis da unidade de tempo são Milissegundos, Segundos, Minuto, Horas, Dias. O valor padrão é Milissegundos.

Parâmetros para configurar um Scheduler (para Expressão Cron)

Na verdade, Cron é um padrão usado para descrever informações de hora e data. Caso você use a expressão Cron flexível para fazer o Scheduler disparar, o Scheduler Endpoint monitora cada segundo e cria um evento Mule sempre que a expressão Quartz Cron corresponde à configuração de data e hora. Com a expressão Cron, o evento pode ser disparado apenas uma vez ou em intervalos regulares.

A tabela a seguir fornece a expressão de data e hora de seis configurações necessárias -

Atributo Valor
Segundos 0-59
Minutos 0-59
Horas 0-23
Dia do mês 1-31
Mês 1-12 ou JAN-DEC
Dia da semana 1-7 ou SUN-SAT

Alguns exemplos de expressões Quartz Cron suportadas pelo Scheduler Endpoint são fornecidos abaixo -

  • ½ * * * * ? - significa que o planejador é executado a cada 2 segundos do dia, todos os dias.

  • 0 0/5 16 ** ? - significa que o agendador é executado a cada 5 minutos, começando às 16h e terminando às 16h55, todos os dias.

  • 1 1 1 1, 5 * ? - significa que o planejador funciona no primeiro dia de janeiro e no primeiro dia de abril de cada ano.

Exemplo

O código a seguir registra a mensagem “hi” a 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>