Mulesoft-endpoints

提供:Dev Guides
移動先:案内検索

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>