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>