MuleSoft - Endpunkte

Zu den Endpunkten gehören im Wesentlichen diejenigen Komponenten, die die Verarbeitung in einem Arbeitsablauf der Mule-Anwendung auslösen oder initiieren. Sie heißenSource in Anypoint Studio und Triggersim Design Center von Mule. Ein wichtiger Endpunkt in Mule 4 istScheduler component.

Scheduler-Endpunkt

Diese Komponente arbeitet mit zeitbasierten Bedingungen, dh sie ermöglicht es uns, einen Fluss auszulösen, wenn eine zeitbasierte Bedingung erfüllt ist. Ein Scheduler kann beispielsweise ein Ereignis auslösen, um alle 10 Sekunden einen Mule-Arbeitsablauf zu starten. Wir können auch einen flexiblen Cron-Ausdruck verwenden, um einen Scheduler-Endpunkt auszulösen.

Wichtige Punkte zum Scheduler

Bei der Verwendung des Scheduler-Ereignisses müssen wir uns um einige wichtige Punkte kümmern, wie unten angegeben -

  • Der Scheduler-Endpunkt folgt der Zeitzone des Computers, auf dem die Mule-Laufzeit ausgeführt wird.

  • Angenommen, wenn eine Mule-Anwendung in CloudHub ausgeführt wird, folgt der Scheduler der Zeitzone der Region, in der der CloudHub-Worker ausgeführt wird.

  • Zu jedem Zeitpunkt kann nur ein vom Scheduler-Endpunkt ausgelöster Flow aktiv sein.

  • Im Mule-Laufzeitcluster wird der Scheduler-Endpunkt nur auf dem Primärknoten ausgeführt oder ausgelöst.

Möglichkeiten zum Konfigurieren eines Schedulers

Wie oben erläutert, können wir einen Scheduler-Endpunkt so konfigurieren, dass er in einem festen Intervall ausgelöst wird, oder wir können auch einen Cron-Ausdruck angeben.

Parameter zum Konfigurieren eines Schedulers (für festes Intervall)

Im Folgenden finden Sie die Parameter zum Festlegen eines Schedulers zum Auslösen eines Flusses in regelmäßigen Abständen:

Frequency- Grundsätzlich wird beschrieben, mit welcher Frequenz der Scheduler-Endpunkt den Mule-Flow auslöst. Die Zeiteinheit hierfür kann im Feld Zeiteinheit ausgewählt werden. Wenn Sie hierfür keine Werte angeben, wird der Standardwert 1000 verwendet. Wenn Sie andererseits 0 oder einen negativen Wert angeben, wird auch der Standardwert verwendet.

Start Delay- Dies ist die Zeit, die wir warten müssen, bevor der Mule-Flow zum ersten Mal ausgelöst wird, sobald die Anwendung gestartet wird. Der Wert der Startverzögerung wird in derselben Zeiteinheit wie die Frequenz ausgedrückt. Der Standardwert ist 0.

Time Unit- Es beschreibt die Zeiteinheit für Frequenz und Startverzögerung. Die möglichen Werte der Zeiteinheit sind Millisekunden, Sekunden, Minuten, Stunden, Tage. Der Standardwert ist Millisekunden.

Parameter zum Konfigurieren eines Schedulers (für Cron-Ausdruck)

Tatsächlich ist Cron ein Standard zur Beschreibung von Zeit- und Datumsinformationen. Wenn Sie den flexiblen Cron-Ausdruck verwenden, um den Scheduler auszulösen, verfolgt der Scheduler-Endpunkt jede Sekunde und erstellt ein Mule-Ereignis, wenn der Quartz Cron-Ausdruck mit der Zeit-Datum-Einstellung übereinstimmt. Mit dem Cron-Ausdruck kann das Ereignis nur einmal oder in regelmäßigen Abständen ausgelöst werden.

Die folgende Tabelle gibt den Datums- / Uhrzeitausdruck von sechs erforderlichen Einstellungen an -

Attribut Wert
Sekunden 0-59
Protokoll 0-59
Std 0-23
Monatstag 1-31
Monat 1-12 oder JAN-DEZ
Wochentag 1-7 oder SUN-SAT

Einige Beispiele für Quarz-Cron-Ausdrücke, die vom Scheduler-Endpunkt unterstützt werden, sind nachstehend aufgeführt:

  • ½ * * * * ? - bedeutet, dass der Scheduler jeden Tag alle 2 Sekunden des Tages ausgeführt wird.

  • 0 0/5 16 ** ? - bedeutet, dass der Scheduler alle 5 Minuten täglich ab 16 Uhr und bis 16:55 Uhr ausgeführt wird.

  • 1 1 1 1, 5 * ? - bedeutet, dass der Planer jedes Jahr den ersten Tag im Januar und den ersten Tag im April ausführt.

Beispiel

Der folgende Code protokolliert jede Sekunde die Meldung "hi" -

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