MuleSoft - Конечные точки
Конечные точки в основном включают в себя те компоненты, которые запускают или инициируют обработку в рабочем потоке приложения Mule. Они называютсяSource в Anypoint Studio и Triggersв Центре дизайна Mule. Одна из важных конечных точек в Mule 4:Scheduler component.
Конечная точка планировщика
Этот компонент работает с временными условиями, что означает, что он позволяет нам запускать поток всякий раз, когда выполняется временное условие. Например, планировщик может запускать событие для запуска рабочего потока Mule каждые, скажем, 10 секунд. Мы также можем использовать гибкое выражение Cron для запуска конечной точки планировщика.
Важные моменты о планировщике
При использовании события Scheduler нам нужно позаботиться о некоторых важных моментах, как указано ниже:
Конечная точка планировщика следует часовому поясу машины, на которой работает среда выполнения Mule.
Предположим, что если приложение Mule запущено в CloudHub, планировщик будет следовать часовому поясу региона, в котором работает рабочий CloudHub.
В любой момент времени может быть активен только один поток, запущенный конечной точкой планировщика.
В кластере времени выполнения Mule конечная точка планировщика запускается или запускается только на основном узле.
Способы настройки планировщика
Как обсуждалось выше, мы можем настроить конечную точку планировщика для запуска с фиксированным интервалом или мы также можем задать выражение Cron.
Параметры для настройки планировщика (для фиксированного интервала)
Ниже приведены параметры для настройки планировщика для запуска потока через регулярные промежутки времени.
Frequency- Он в основном описывает, с какой частотой конечная точка планировщика будет запускать поток Mule. Единицу времени для этого можно выбрать в поле Time Unit. Если вы не укажете для этого никаких значений, он будет использовать значение по умолчанию, равное 1000. С другой стороны, если вы предоставите 0 или отрицательное значение, тогда также будет использоваться значение по умолчанию.
Start Delay- Это количество времени, которое мы должны подождать, прежде чем запускать поток Mule в первый раз после запуска приложения. Значение задержки запуска выражается в той же единице времени, что и частота. Его значение по умолчанию - 0.
Time Unit- Он описывает единицу времени как для частоты, так и для задержки запуска. Возможные значения единицы времени: миллисекунды, секунды, минуты, часы, дни. Значение по умолчанию - миллисекунды.
Параметры для настройки планировщика (для выражения Cron)
Фактически, Cron - это стандарт, используемый для описания информации о времени и дате. Если вы используете гибкое выражение Cron для запуска Scheduler, конечная точка Scheduler отслеживает каждую секунду и создает событие Mule всякий раз, когда выражение Quartz Cron совпадает с настройкой времени и даты. С помощью выражения Cron событие может запускаться только один раз или через определенные промежутки времени.
В следующей таблице приведены выражения даты и времени для шести требуемых настроек:
Атрибут | Значение |
---|---|
Секунды | 0-59 |
Минуты | 0-59 |
Часы работы | 0-23 |
День месяца | 1-31 |
Месяц | 1-12 или ЯНВ-ДЕКАБРЬ |
День недели | 1-7 или ВС-СБ |
Ниже приведены некоторые примеры выражений Quartz Cron, поддерживаемых конечной точкой планировщика.
½ * * * * ? - означает, что планировщик запускается каждые 2 секунды в день, каждый день.
0 0/5 16 ** ? - означает, что планировщик запускается каждые 5 минут, начиная с 16:00 до 16:55, каждый день.
1 1 1 1, 5 * ? - означает, что планировщик запускается в первый день января и в первый день апреля каждого года.
пример
Следующий код регистрирует сообщение «привет» каждую секунду -
<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>