Mulesoft-endpoints
MuleSoft-エンドポイント
エンドポイントには基本的に、Muleアプリケーションの作業フローで処理をトリガーまたは開始するコンポーネントが含まれます。 Anypoint Studioでは Source 、Muleのデザインセンターでは Triggers と呼ばれます。 ESB Mule 4の重要なエンドポイントの1つは*スケジューラーコンポーネント*です。
スケジューラーエンドポイント
このコンポーネントは、時間ベースの条件で機能します。つまり、時間ベースの条件が満たされるたびにフローをトリガーできます。 例えば、スケジューラーは、10秒ごとにESB Muleの作業フローを開始するイベントをトリガーできます。 柔軟なCron式を使用して、スケジューラエンドポイントをトリガーすることもできます。
スケジューラに関する重要なポイント
スケジューライベントを使用している間、以下に示すいくつかの重要な点に注意する必要があります-
- スケジューラーエンドポイントは、Muleランタイムが実行されているマシンのタイムゾーンに従います。
- ESB MuleアプリケーションがCloudHubで実行されている場合、スケジューラはCloudHubワーカーが実行されている地域のタイムゾーンに従うと仮定します。
- 常に、スケジューラエンドポイントによってトリガーされる1つのフローのみをアクティブにできます。
- ESB Muleランタイムクラスタでは、スケジューラエンドポイントはプライマリノードでのみ実行またはトリガーされます。
スケジューラを構成する方法
上で説明したように、スケジューラエンドポイントを固定間隔でトリガーされるように構成することも、Cron式を指定することもできます。
スケジューラーを構成するパラメーター(固定間隔の場合)
定期的な間隔でフローをトリガーするスケジューラーを設定するパラメーターは次のとおりです-
周波数-基本的に、スケジューラエンドポイントがMuleフローをトリガーする周波数を示します。 この時間の単位は、[時間単位]フィールドから選択できます。 この値を指定しない場合、デフォルト値の1000が使用されます。 一方、0または負の値を指定すると、デフォルト値も使用されます。
開始遅延-アプリケーションが開始されてから初めてMuleフローをトリガーするまでの待機時間です。 開始遅延の値は、周波数と同じ時間単位で表されます。 デフォルト値は0です。
時間単位-周波数と開始遅延の両方の時間単位を記述します。 時間単位の可能な値は、ミリ秒、秒、分、時間、日です。 デフォルト値はミリ秒です。
スケジューラーを構成するパラメーター(Cron式の場合)
実際、Cronは時刻と日付の情報を記述するために使用される標準です。 柔軟なCron式を使用してスケジューラーをトリガーする場合、Scheduler Endpointは毎秒を追跡し、Quartz Cron式が日時設定に一致するたびにMuleイベントを作成します。 Cron式を使用すると、イベントは1回だけ、または定期的にトリガーできます。
次の表は、6つの必要な設定の日時表現を示しています-
Attribute | Value |
---|---|
Seconds | 0-59 |
Minutes | 0-59 |
Hours | 0-23 |
Day of month | 1-31 |
Month | 1-12 or JAN-DEC |
Day of the week | 1-7 or 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>