スケジュールの管理

Runtime Manager を使用して、デプロイされたアプリケーションのフロー内の Scheduler コンポーネントの表示と制御を行うことができます。 左側のナビゲーションメニューにある ​[Schedules (スケジュール)]​ タブを使用して、実行中のアプリケーションを変更することなく、Scheduler 要素を有効化または無効化するか、頻度を変更するか、スケジュール済みジョブを直ちに実行します。

[Schedules (スケジュール)]​ タブは、次のようなユースケースで特に役立ちます。

  • 毎晩実行するジョブがあるが、今すぐデバッグしたい。

    アプリケーションでスケジュールを更新しなくても、実行中のジョブをトリガーできます。

  • 再デプロイせずに実行時にアプリケーションでスケジュールを変更したい。

  • 接続しているアプリケーションのうちの 1 つがメンテナンス中である間に、スケジュールされたジョブを無効にしたい場合。

  • アプリケーション内のスケジュールを実行時に可視化したい場合。

CloudHub スケジューラーは、毎回の実行時にジョブ設定を読み取ります。 スケジューラー設定を更新した場合、次回スケジューラーが実行されるときに変更が有効になります。

スクリプトを使用して CloudHub のスケジュールを管理することはできません。 CloudHub のスケジュールを管理するには、​[Schedules (スケジュール)]​ タブまたは CloudHub API を使用してください。

考慮事項と制限事項

スケジュールを設計するときには、次の点を考慮してください。

  • ネットワーク障害、ハードウェアの問題や定期メンテナンスによるインフラストラクチャの再起動、セキュリティ更新の間の高可用性を計画します。

    サービス更新やセキュリティパッチ適用中、CloudHub では既存のスケジュールが完了するまで 2 分待機します。 2 分後に、CloudHub によって未完了のスケジュールが再トリガーされます。

    長時間実行されるスケジュールの再トリガーを避けるために、アプリケーションによってフローが冪等で実行されるようにしてください。

  • 上記の問題が原因で 2 回以上トリガーされる可能性があるため、データ処理の重複を避けるようスケジュールをデザインします。

  • マルチワーカーアプリケーションの場合、CloudHub ではスケジュールトリガーが 1 つのワーカーで実行されることを保証します。

    ただし、以降のトリガーは別のワーカーで実行される場合もあります。 CloudHub では、複数の同時スケジュールがワーカー間で分散されます。

  • コール間の最小の推奨頻度は 10 秒です。

  • アプリケーションが実行されていないためにスケジュールされたジョブがトリガーされない場合は、CloudHub では、再起動されるとすぐにジョブをトリガーします。

  • Mule 4.x アプリケーションでスケジュールを使用してサブフローが含まれるフローをトリガーする場合、スケジューラーは次の実行をスケジュールする前にメインフローとサブフローの両方が完了するまで待機します。

    フロー名には、文字 (a-zA-Z)、数字 (0-9)、ハイフン (-)、アンダースコア (_)、ピリオド (.) の各文字のみを含めることができます。

  • アプリケーションをデプロイしている地域に関係なく、スケジュールはすべて UTC タイムゾーンに基づきます。

Runtime Manager でアプリケーションを表示して管理する

Runtime Manager のスケジュール機能を使用するには、1 つ以上の Scheduler 要素を含むアプリケーションをデプロイします。

Anypoint Studio キャンバスの Scheduler コンポーネント
Figure 1. 矢印は、Anypoint Studio キャンバスの ​Scheduler​ コンポーネントを示しています。

このサンプルアプリケーションは Exchange からダウンロードできます。

アプリケーションを CloudHub にデプロイしたら、Runtime Manager で Scheduler 要素を表示して管理します。

  1. 左ペインで ​[Applications (アプリケーション)]​ をクリックし、アプリケーションをクリックしてから ​[Schedules (スケジュール)]​ をクリックします。

    [Schedules (スケジュール)] ページの [Logs (ログ)] オプション、[Last Run (最終実行)] 列、頻度リンク
    Figure 2. このスクリーンショットは、​[Schedules (スケジュール)]​ ページの (​1​) ​[Logs (ログ)]​ オプション、(​2​) ​[Last Run (最終実行)]​ 列、(​3​) 頻度リンクを示しています。

    [Last Run (最終実行)]​ 列には、各 Scheduler 要素が最後に実行された日時が表示されます。 左側のナビゲーションメニューにある ​[Logs (ログ)]​ をクリックすると、スケジュールされたジョブの実行がいつ開始され、終了したのかについて詳細を参照できます。

    Runtime Manager では、Scheduler 要素がアプリケーションに表示される順序でリストされます。

  2. 管理する要素を選択してから、以下を実行します。

    • スケジュールを上書きしてジョブを直ちに実行する場合は、​[Run now (今すぐ実行)]​ をクリックします。

    • Scheduler 要素をサスペンドする場合は、​[Disable (無効化)]​ をクリックします。

      再び有効化されるまで、スケジュールされたジョブは実行されません。

    • [Schedule (スケジュール)]​ 列で頻度リンクをクリックして、スケジュールエディターを開きます。

      スケジュールエディターの [Switch to advanced mode (高度なモードに切り替え)] リンク
      Figure 3. 矢印は、スケジュールエディターの ​[Switch to advanced mode (高度なモードに切り替え)]​ リンクを示しています。

      スケジュールエディターで、スケジュールの頻度を変更するか、または ​[Enabled (有効化)]​ チェックボックスをオフにしてスケジュールを無効にします。

      頻度の値としては 10 ~ 100 秒を指定できます。

      また、高度なモードに切り替えて Cron 式を使用することで、「毎週木曜日の午後 3 時 00 分」のような詳細なスケジュールを作成することもできます。

      デフォルトでは、スケジュールはアプリケーションで定義された頻度で実行されます。Runtime Manager でスケジュールの頻度を変更すると、同じスケジュールをアプリケーションの JAR ファイルで更新して再デプロイしても、スケジュールは Runtime Manager で設定された頻度で実行されます。
  3. [Update (更新)]​ をクリックして設定の変更内容を保存するか、または ​[Cancel (キャンセル)]​ をクリックして保存せずに終了します。

Cron 式の使用

Cron 式を使用すると、「毎週金曜日の午前 9 時 00 分から午前 10 時 00 分まで 5 分おき」といった複雑なスケジュール頻度を作成できます。

Cron 式を使用してスケジュール頻度を指定する手順は、次のとおりです。

  1. スケジュールエディターで ​[Switch to advanced mode (高度なモードに切り替え)]​ をクリックします。

  2. 高度なモードページで ​[Quick reference (クイックリファレンス)]​ をクリックして、必須項目と許可される値のテーブルを展開するか折りたたみます。

    高度なモードページの [Quick reference (クイックリファレンス)] 切り替え、[more (その他)] リンク、[Switch to basic mode (基本モードに切り替え)] リンク
    Figure 4. このスクリーンショットは、高度なモードページの (​1​) ​[Quick reference (クイックリファレンス)]​ 切り替え、(​2​) ​[more (その他)]​ リンク、​[Switch to basic mode (基本モードに切り替え)]​ リンクを示しています。

    この例の Cron 式は、10 秒間隔 (サポートされる最小限の頻度) のスケジュールを設定しています。

    このページで、次の手順を実行します。

    • [more (詳細)]​ をクリックして Quartz ドキュメント​を表示し、Cron トリガーの作成方法を確認します。

      バージョンを選択し、​[Documentation (ドキュメント)] > [User’s Guide (ユーザーガイド)] > [Tutorial (チュートリアル)]​ をクリックして、​[CronTrigger]​ レッスンをクリックします。

      スケジュールはすべて UTC タイムゾーンに基づくため、タイムゾーン設定は無視されます。
    • 詳細モードを終了する場合は ​[Switch to basic mode (基本モードに切り替え)]​ をクリックします。

  3. [Update (更新)]​ をクリックして Cron 設定の変更内容を保存するか、または ​[Cancel (キャンセル)]​ をクリックして保存せずに終了します。