MuleSoft - Endpoint
Gli endpoint includono fondamentalmente quei componenti che attivano o avviano l'elaborazione in un flusso di lavoro dell'applicazione Mule. Sono chiamatiSource in Anypoint Studio e Triggersnel Design Center di Mule. Un importante endpoint in Mule 4 èScheduler component.
Endpoint dello scheduler
Questo componente funziona su condizioni basate sul tempo, il che significa che ci consente di attivare un flusso ogni volta che viene soddisfatta una condizione basata sul tempo. Ad esempio, uno scheduler può attivare un evento per avviare un flusso di lavoro di Mule ogni, diciamo 10 secondi. Possiamo anche utilizzare un'espressione Cron flessibile per attivare un endpoint dello scheduler.
Punti importanti su Scheduler
Durante l'utilizzo dell'evento Scheduler, dobbiamo occuparci di alcuni punti importanti come indicato di seguito:
Scheduler Endpoint segue il fuso orario della macchina su cui è in esecuzione il runtime di Mule.
Supponiamo che se un'applicazione Mule è in esecuzione in CloudHub, lo Scheduler seguirà il fuso orario della regione in cui è in esecuzione il worker CloudHub.
In qualsiasi momento, può essere attivo un solo flusso attivato dall'endpoint dello scheduler.
Nel cluster di runtime Mule, l'endpoint dello scheduler viene eseguito o si attiva solo sul nodo primario.
Modi per configurare uno Scheduler
Come discusso in precedenza, possiamo configurare un endpoint dello scheduler in modo che venga attivato a un intervallo fisso o possiamo anche fornire un'espressione Cron.
Parametri per configurare una pianificazione (per intervallo fisso)
Di seguito sono riportati i parametri per impostare uno scheduler per attivare un flusso a intervalli regolari:
Frequency- Descrive fondamentalmente con quale frequenza l'endpoint dello scheduler attiverà il flusso del mulo. L'unità di tempo per questo può essere selezionata dal campo Unità di tempo. Se non si fornisce alcun valore per questo, verrà utilizzato il valore predefinito che è 1000. D'altro lato, se si fornisce 0 o un valore negativo, verrà utilizzato anche il valore predefinito.
Start Delay- È la quantità di tempo che dobbiamo attendere prima di attivare il flusso Mule per la prima volta una volta avviata l'applicazione. Il valore di Start delay è espresso nella stessa unità di tempo della frequenza. Il suo valore predefinito è 0.
Time Unit- Descrive l'unità di tempo sia per la frequenza che per il ritardo di avvio. I possibili valori dell'unità di tempo sono Millisecondi, Secondi, Minuti, Ore, Giorni. Il valore predefinito è Millisecondi.
Parametri per configurare uno scheduler (per l'espressione Cron)
In realtà, Cron è uno standard utilizzato per descrivere le informazioni di data e ora. Se utilizzi l'espressione Cron flessibile per attivare lo Scheduler, l'endpoint dello Scheduler tiene traccia di ogni secondo e crea un evento Mule ogni volta che l'espressione Cron Quartz corrisponde all'impostazione della data e dell'ora. Con l'espressione Cron, l'evento può essere attivato solo una volta o a intervalli regolari.
La tabella seguente fornisce l'espressione data-ora di sei impostazioni richieste:
Attributo | Valore |
---|---|
Secondi | 0-59 |
Minuti | 0-59 |
Ore | 0-23 |
Giorno del mese | 1-31 |
Mese | 1-12 o GEN-DIC |
Giorno della settimana | 1-7 o DOM-SAB |
Di seguito sono forniti alcuni esempi di espressioni Quartz Cron supportate dall'endpoint dello scheduler:
½ * * * * ? - significa che lo scheduler viene eseguito ogni 2 secondi del giorno, ogni giorno.
0 0/5 16 ** ? - significa che lo scheduler viene eseguito ogni 5 minuti a partire dalle 16:00 e termina alle 16:55, tutti i giorni.
1 1 1 1, 5 * ? - significa che lo scheduler viene eseguito il primo giorno di gennaio e il primo giorno di aprile di ogni anno.
Esempio
Il codice seguente registra il messaggio "ciao" ogni secondo -
<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>