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>