Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerRuntime Manager を使用して、実行中のアプリケーションを変更することなく、デプロイされたアプリケーションのフロー内の Scheduler コンポーネントの表示と制御を行うことができます。 たとえば、アプリケーションのうちの 1 つがメンテナンス中である間に、スケジュールされたジョブを無効にすることができます。
[Schedules (スケジュール)] タブでは以下を行うことができます。
実行中のアプリケーションでスケジュールを表示する。
アプリケーションでスケジュールを変更する。
スケジュールを変更せずに、スケジュールされたジョブを直ちに実行する。
フローのスケジュールを無効または有効にする。
定期的な間隔でトリガーする一定間隔、または指定した Cron 式に基づいた日時にトリガーする Cron として、Scheduler コンポーネントの種類を設定します。
スケジュールタイプを (一定間隔から Cron、またはその逆に) 変更するには、アプリケーションを更新して再デプロイする必要があります。 デプロイされたアプリケーションのスケジュールタイプを変更することはできません。 |
アプリケーションスケジュールを表示するには、「Read Applications (アプリケーションの読み取り)」権限に加えて「Exchange Viewer (Exchange 閲覧者)」権限が必要です。 |
スケジュールを設計するときには、次の点を考慮してください。
CloudHub 2.0 スケジューラーは、毎回の実行時にジョブ設定を読み取ります。
スケジューラー設定を更新した場合、次回スケジューラーが実行されるときに変更が有効になります。
スケジュールを変更すると、アプリケーションが再デプロイされます。
アプリケーションが実行されていないためにスケジュールされたジョブがトリガーされない場合、 CloudHub 2.0 はアプリケーションが再起動すると直ちにジョブをトリガーします。
スケジュールは、スケジューラーの定義されたタイムゾーンに基づきます。
複数のレプリカがあるアプリケーションの場合、CloudHub 2.0 はスケジュールされたジョブをすべてのレプリカで実行します。
[Run (実行)] をクリックしてスケジュールされたジョブを直ちに実行する場合、スケジューラーは 1 つのレプリカで実行されます。
CloudHub 2.0 は、レプリカ全体に複数の同時スケジューラーを分散します。
スクリプトを使用して CloudHub 2.0 のスケジュールを管理することはできません。
CloudHub 2.0 のスケジュールを管理するには、[Schedules (スケジュール)] タブまたは CloudHub 2.0 API を使用してください。
フロー名には、文字、数字、ハイフン (-
)、アンダースコア (_
)、ピリオド (.
) のみを含めることができます。文字 /
、[
、]
、{
、}
、#
は無効です。
プレースホルダーのあるスケジューラーを使用してスケジュールを作成する場合、スケジュールの作成時に表示される値は、プレースホルダーがいつ検出されるかによって異なります。次に例を示します。
アプリケーションがデプロイされる前に値が使用可能な場合、その値が表示されます。
値がデプロイメントの前に使用可能で、デプロイメントのプロパティに依存する場合、推定値が表示されます。
値がデプロイメント時に提供されるプレースホルダー (${cronExpression}
など) である場合、プレースホルダーの正確な値はユーザーインターフェースに表示されません。
CloudHub 2.0 ではデフォルト値の 60000
が使用されます。
スケジューラーに変更を加えた場合は、アプリケーションを Exchange に再アップロードして、スケジューラーが期待どおりに動作するようにする必要があります。
Runtime Manager のスケジュール機能を使用するには、Anypoint Studio 7.13 を使用して 1 つ以上の Scheduler 要素を含むアプリケーションをデプロイします。
アプリケーションをデプロイしたら、Runtime Manager でスケジュールを管理できます。 アプリケーションが実行されている必要はありません。
アプリケーションを CloudHub 2.0 にデプロイしたら、Runtime Manager で Scheduler 要素を表示して管理します。
Anypoint Platform から、[Runtime Manager] > [Applications (アプリケーション)] を選択します。
アプリケーション名をクリックします。
ナビゲーションメニューで [Schedules (スケジュール)] をクリックします。
Runtime Manager では、Scheduler 要素がアプリケーションに表示される順序でリストされます。
[Name (名前)] 列には、Scheduler 要素を含むフローの名前 (1) が表示されます。
[Schedule (スケジュール)] 列の頻度リンク (2) には、要素のスケジュールが表示されます。
ジョブが開始および終了した日時の詳細を確認する場合は、ナビゲーションメニューで [Logs (ログ)] をクリックします。
要素の頻度リンクをクリックして、スケジュールエディターを開きます。
表示されるスケジュールエディターは、スケジュールタイプによって異なります。
スケジュールエディターで、スケジュールを変更するか、または [Enabled (有効)] チェックボックスをオフにしてスケジュールを無効にします。
[Update (更新)] をクリックして設定の変更内容を保存するか、または [Cancel (キャンセル)] をクリックして保存せずに終了します。
Anypoint Platform から、[Runtime Manager] > [Applications (アプリケーション)] を選択します。
アプリケーション名をクリックします。
ナビゲーションメニューで [Schedules (スケジュール)] をクリックします。
[Schedule (スケジュール)] 列には、要素のスケジュールが表示されます。
要素の頻度リンクをクリックして、スケジュールエディターを開きます。
スケジュールエディターで、スケジュールを変更するか、または [Enabled (有効)] チェックボックスをオフにしてスケジュールを無効にします。
頻度には、ミリ秒、秒、分、時間、または日を指定できます。 コール間の最小の推奨頻度は 10 秒です。
[Update (更新)] をクリックして設定の変更内容を保存するか、または [Cancel (キャンセル)] をクリックして保存せずに終了します。
Cron 式を使用すると、「毎週金曜日の午前 9 時 00 分から午前 10 時 00 分まで 5 分おき」といった複雑なスケジュール頻度を作成できます。
Cron スケジュールタイプの頻度を変更する手順は、次のとおりです。
Anypoint Platform から、[Runtime Manager] > [Applications (アプリケーション)] を選択します。
アプリケーション名をクリックします。
ナビゲーションメニューで [Schedules (スケジュール)] をクリックします。
[Schedule (スケジュール)] 列には、要素のスケジュールが表示されます。
要素の頻度リンクをクリックして、スケジュールエディターを開きます。
スケジュールエディターで、スケジュールを変更するか、または [Enabled (有効)] (1) チェックボックスをオフにしてスケジュールを無効にします。
スケジュールエディターで [Quick reference (クイックリファレンス)] (2) をクリックして、必須項目と許可される値のテーブルを展開するか折りたたみます。
この例の Cron 式は、10 秒間隔のスケジュールを設定しています。
Cron トリガーの作成についての詳細は、次の方法で確認できます。
Quartz ドキュメントを参照します。
バージョンを選択し、[Documentation (ドキュメント)] > [User’s Guide (ユーザーガイド)] > [Tutorial (チュートリアル)] をクリックして、[CronTrigger] レッスンをクリックします。
[Update (更新)] をクリックして設定の変更内容を保存するか、または [Cancel (キャンセル)] をクリックして保存せずに終了します。
毎晩実行するジョブを今すぐデバッグする場合は、アプリケーションでスケジュールを更新しなくても、実行中のジョブをトリガーできます。実行中のスケジューラーのインスタンス間でジョブをトリガーすると、指定された期間のタイマーがリセットされます。
スケジュールされたジョブを直ちに実行する場合、複数のレプリカがあるアプリケーションの場合でも、スケジューラーは 1 つのレプリカで実行されます。 |
スケジュールを上書きしてジョブを直ちに実行する手順は、次のとおりです。
Anypoint Platform から、[Runtime Manager] > [Applications (アプリケーション)] を選択します。
アプリケーション名をクリックします。
ナビゲーションメニューで [Schedules (スケジュール)] をクリックします。
管理する要素を選択してから、[Run (実行)] をクリックします。
接続しているアプリケーションがメンテナンス中である間に、スケジュールされたジョブを無効にし、メンテナンスの完了後に再度有効にすることができます。
スケジューラーを再度有効にするまで、CloudHub 2.0 はスケジュールされたジョブを実行しません。
既知の問題: スケジューラーを無効にしても、スケジューラーはアプリケーションの起動時に実行されます。スケジューラーが実行されないようにする場合は、Anypoint Studio を使用してアプリケーションで startdelay
プロパティを 5 秒に設定します。
Scheduler 要素を無効にする手順は、次のとおりです。
Anypoint Platform から、[Runtime Manager] > [Applications (アプリケーション)] を選択します。
アプリケーション名をクリックします。
ナビゲーションメニューで [Schedules (スケジュール)] をクリックします。
管理する要素を選択してから、[Disable (無効化)] をクリックします。
スケジュールエディターで [Enabled (有効)] を選択解除または選択して、スケジュールを無効または有効にすることもできます。