MuleSoft-엔드 포인트
엔드 포인트에는 기본적으로 Mule 애플리케이션의 작업 흐름에서 처리를 트리거하거나 시작하는 구성 요소가 포함됩니다. 그들 불리는Source Anypoint Studio에서 Triggers뮬의 디자인 센터에서. Mule 4의 중요한 끝점 중 하나는Scheduler component.
스케줄러 끝점
이 구성 요소는 시간 기반 조건에서 작동합니다. 즉, 시간 기반 조건이 충족 될 때마다 흐름을 트리거 할 수 있습니다. 예를 들어 스케줄러는 이벤트를 트리거하여 10 초마다 Mule 작업 흐름을 시작할 수 있습니다. 유연한 Cron 표현식을 사용하여 스케줄러 엔드 포인트를 트리거 할 수도 있습니다.
스케줄러에 대한 중요 사항
Scheduler 이벤트를 사용하는 동안 다음과 같이 몇 가지 중요한 사항을 처리해야합니다.
스케줄러 엔드 포인트는 Mule 런타임이 실행되는 시스템의 시간대를 따릅니다.
Mule 애플리케이션이 CloudHub에서 실행중인 경우 스케줄러는 CloudHub 작업자가 실행중인 지역의 시간대를 따릅니다.
주어진 시간에 스케줄러 엔드 포인트에 의해 트리거 된 하나의 흐름 만 활성화 될 수 있습니다.
Mule 런타임 클러스터에서 스케줄러 엔드 포인트는 기본 노드에서만 실행되거나 트리거됩니다.
스케줄러를 구성하는 방법
위에서 설명한 것처럼 일정 간격으로 트리거되도록 스케줄러 엔드 포인트를 구성하거나 Cron 표현식을 제공 할 수도 있습니다.
스케줄러를 구성하는 매개 변수 (고정 간격 용)
다음은 일정 간격으로 흐름을 트리거하도록 스케줄러를 설정하는 매개 변수입니다.
Frequency− 기본적으로 스케줄러 엔드 포인트가 Mule 흐름을 트리거하는 빈도를 설명합니다. 이를위한 시간 단위는 시간 단위 필드에서 선택할 수 있습니다. 이에 대한 값을 제공하지 않으면 기본값 인 1000이 사용됩니다. 반면에 0 또는 음수 값을 제공하면 기본값도 사용됩니다.
Start Delay− 응용 프로그램이 시작된 후 처음으로 Mule 흐름을 트리거하기 전에 기다려야하는 시간입니다. 시작 지연 값은 주파수와 동일한 시간 단위로 표현됩니다. 기본값은 0입니다.
Time Unit− 주파수 및 시작 지연 시간 단위를 설명합니다. 시간 단위의 가능한 값은 Milliseconds, Seconds, Minute, Hours, Days입니다. 기본값은 밀리 초입니다.
스케줄러를 구성하기위한 매개 변수 (Cron 표현식의 경우)
실제로 Cron은 시간 및 날짜 정보를 설명하는 데 사용되는 표준입니다. 유연한 Cron 표현식을 사용하여 스케줄러를 트리거하는 경우 스케줄러 엔드 포인트는 매초마다 추적하고 Quartz Cron 표현식이 시간-날짜 설정과 일치 할 때마다 Mule 이벤트를 생성합니다. Cron 표현식을 사용하면 이벤트를 한 번만 또는 일정한 간격으로 트리거 할 수 있습니다.
다음 표는 여섯 가지 필수 설정의 날짜-시간 표현을 제공합니다.
속성 | 값 |
---|---|
초 | 0-59 |
의사록 | 0-59 |
시간 | 0-23 |
날짜 | 1-31 |
달 | 1-12 또는 JAN-DEC |
요일 | 1-7 또는 SUN-SAT |
스케줄러 엔드 포인트에서 지원하는 Quartz Cron 표현식의 몇 가지 예는 다음과 같습니다.
½ * * * * ? − 스케줄러가 매일 2 초마다 실행됨을 의미합니다.
0 0/5 16 ** ? − 스케줄러가 매일 오후 4 시부 터 오후 4시 55 분까지 5 분마다 실행됨을 의미합니다.
1 1 1 1, 5 * ? − 스케줄러가 매년 1 월 1 일과 4 월 1 일에 실행됨을 의미합니다.
예
다음 코드는 매초 "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>