MuleSoft-エンドポイント

エンドポイントには基本的に、Muleアプリケーションの作業フローで処理をトリガーまたは開始するコンポーネントが含まれます。というSource AnypointStudioと Triggersミュールのデザインセンターで。Mule4の重要なエンドポイントの1つはScheduler component

スケジューラエンドポイント

このコンポーネントは時間ベースの条件で機能します。つまり、時間ベースの条件が満たされるたびにフローをトリガーできます。たとえば、スケジューラーはイベントをトリガーして、たとえば10秒ごとにMuleの作業フローを開始できます。柔軟なCron式を使用して、スケジューラエンドポイントをトリガーすることもできます。

スケジューラに関する重要なポイント

スケジューライベントを使用している間、以下に示すいくつかの重要な点に注意する必要があります-

  • スケジューラエンドポイントは、Muleランタイムが実行されているマシンのタイムゾーンに従います。

  • MuleアプリケーションがCloudHubで実行されている場合、スケジューラーはCloudHubワーカーが実行されているリージョンのタイムゾーンに従います。

  • 常に、スケジューラエンドポイントによってトリガーされた1つのフローのみをアクティブにできます。

  • Muleランタイムクラスターでは、スケジューラエンドポイントはプライマリノードでのみ実行またはトリガーされます。

スケジューラーを構成する方法

上で説明したように、スケジューラエンドポイントを一定の間隔でトリガーされるように構成することも、Cron式を指定することもできます。

スケジューラーを構成するためのパラメーター(固定間隔の場合)

以下は、一定の間隔でフローをトリガーするようにスケジューラーを設定するためのパラメーターです。

Frequency−基本的に、スケジューラエンドポイントがミュールフローをトリガーする頻度を記述します。この時間の単位は、[時間の単位]フィールドから選択できます。これに値を指定しない場合は、デフォルト値の1000が使用されます。一方、0または負の値を指定すると、デフォルト値も使用されます。

Start Delay−これは、アプリケーションが開始されてから初めてMuleフローをトリガーするまで待機する必要がある時間です。開始遅延の値は、周波数と同じ時間単位で表されます。デフォルト値は0です。

Time Unit−周波数と開始遅延の両方の時間単位を表します。時間単位の可能な値は、ミリ秒、秒、分、時間、日です。デフォルト値はミリ秒です。

スケジューラーを構成するためのパラメーター(cron式の場合)

実際、Cronは、時刻と日付の情報を記述するために使用される標準です。柔軟なCron式を使用してSchedulerをトリガーする場合、Scheduler Endpointは毎秒を追跡し、QuartzCron式が日時設定と一致するたびにMuleイベントを作成します。Cron式を使用すると、イベントを1回だけ、または定期的にトリガーできます。

次の表は、6つの必要な設定の日時式を示しています-

属性
0-59
議事録 0-59
時間 0-23
曜日 1-31
1〜12日または1月〜12月
曜日 1-7またはSUN-SAT

スケジューラエンドポイントでサポートされているQuartzCron式の例を以下に示します。

  • ½ * * * * ? −は、スケジューラーが1日の2秒ごとに毎日実行されることを意味します。

  • 0 0/5 16 ** ? −スケジューラーは、毎日午後4時から午後4時55分まで5分ごとに実行されることを意味します。

  • 1 1 1 1, 5 * ? −は、スケジューラーが毎年1月の初日と4月の初日を実行することを意味します。

次のコードは、メッセージ「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>