MuleSoft - Endpoints

Les points de terminaison incluent essentiellement les composants qui déclenchent ou lancent le traitement dans un flux de travail de l'application Mule. Ils s'appellentSource dans Anypoint Studio et Triggersdans le centre de design de Mule. Un point final important dans Mule 4 estScheduler component.

Point de terminaison du planificateur

Ce composant fonctionne sur des conditions basées sur le temps, ce qui signifie qu'il nous permet de déclencher un flux chaque fois qu'une condition basée sur le temps est remplie. Par exemple, un planificateur peut déclencher un événement pour démarrer un flux de travail Mule toutes les 10 secondes, par exemple. Nous pouvons également utiliser une expression Cron flexible pour déclencher un point de terminaison de planificateur.

Points importants sur Scheduler

Lors de l'utilisation de l'événement Scheduler, nous devons prendre soin de certains points importants comme indiqué ci-dessous -

  • Scheduler Endpoint suit le fuseau horaire de la machine sur laquelle s'exécute Mule runtime.

  • Supposons que si une application Mule s'exécute dans CloudHub, le planificateur suivra le fuseau horaire de la région dans laquelle le worker CloudHub s'exécute.

  • À tout moment, un seul flux déclenché par le point de terminaison du planificateur peut être actif.

  • Dans le cluster d'exécution Mule, le point de terminaison du planificateur s'exécute ou se déclenche uniquement sur le nœud principal.

Façons de configurer un planificateur

Comme indiqué ci-dessus, nous pouvons configurer un point de terminaison de planificateur pour qu'il soit déclenché à un intervalle fixe ou nous pouvons également donner une expression Cron.

Paramètres pour configurer un planificateur (pour un intervalle fixe)

Voici les paramètres pour définir un programmateur pour déclencher un flux à intervalles réguliers -

Frequency- Il décrit essentiellement à quelle fréquence le point de terminaison du planificateur déclenchera le flux Mule. L'unité de temps pour cela peut être sélectionnée dans le champ Unité de temps. Dans le cas où vous ne fournissez aucune valeur pour cela, il utilisera la valeur par défaut qui est 1000. De l'autre côté, si vous fournissez 0 ou une valeur négative, il utilise également la valeur par défaut.

Start Delay- C'est le temps qu'il faut attendre avant de déclencher le flux Mule pour la première fois une fois l'application démarrée. La valeur du délai de démarrage est exprimée dans la même unité de temps que la fréquence. Sa valeur par défaut est 0.

Time Unit- Il décrit l'unité de temps pour la fréquence et le délai de démarrage. Les valeurs possibles de l'unité de temps sont Millisecondes, Seconds, Minute, Hours, Days. La valeur par défaut est Millisecondes.

Paramètres pour configurer un planificateur (pour l'expression Cron)

En fait, Cron est une norme utilisée pour décrire les informations d'heure et de date. Si vous utilisez l'expression Cron flexible pour déclencher le planificateur, le point de terminaison du planificateur effectue le suivi de chaque seconde et crée un événement Mule chaque fois que l'expression Quartz Cron correspond au paramètre de date et d'heure. Avec l'expression Cron, l'événement peut être déclenché une seule fois ou à intervalles réguliers.

Le tableau suivant donne l'expression date-heure de six paramètres requis -

Attribut Valeur
Secondes 0-59
Minutes 0-59
Heures 0-23
Jour du mois 1-31
Mois 1-12 ou JAN-DEC
Jour de la semaine 1-7 ou SUN-SAT

Quelques exemples d'expressions Quartz Cron prises en charge par le point de terminaison du planificateur sont donnés ci-dessous -

  • ½ * * * * ? - signifie que le planificateur s'exécute toutes les 2 secondes de la journée, tous les jours.

  • 0 0/5 16 ** ? - signifie que le planificateur s'exécute toutes les 5 minutes à partir de 16 heures et se terminant à 16 h 55, tous les jours.

  • 1 1 1 1, 5 * ? - signifie que l'ordonnanceur fonctionne le premier jour de janvier et le premier jour d'avril, chaque année.

Exemple

Le code suivant enregistre le message «salut» toutes les secondes -

<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>