すべてのプロダクト
Search
ドキュメントセンター

Microservices Engine:ジョブスケジューリング SchedulerX

最終更新日:Jun 23, 2026

Alibaba Cloud SchedulerX のベストプラクティスです。カナリアリリース、ログ統合、スケーリング、スロットリングなどについて説明します。

ベストプラクティス

スケジュールジョブのカナリアリリース実行

SchedulerX のスケジュールジョブは、ラベルベースのルーティングポリシーをサポートしています。SDK でラベルを設定して、特定のラベルを持つワーカーにジョブをルーティングし、カナリアリリースを有効にすることができます。詳細については、「スケジュールジョブのカナリアリリース実行」をご参照ください。

Simple Log Service への接続

Simple Log Service は、システム運用中のキー情報を記録・分析し、障害のトラブルシューティングや潜在的な問題の特定に役立ちます。SchedulerX 2.0 では、Log4j または Logback の設定を追加するだけで、コードを変更することなく、コンソールで分散タスクを含む各スケジュールジョブのビジネスログを表示できます。詳細については、「Simple Log Service への接続」をご参照ください。

単一アプリケーションでの 100,000 を超えるスケジュールジョブのサポート

デフォルトでは、SchedulerX アプリケーションは最大 1,000 個のジョブをサポートします。各スケジュールジョブのスケジュール時刻が異なり、MapReduce 分散タスクで処理できない場合、この制限では不十分なことがあります。100,000 を超えるジョブをサポートするには、SchedulerX ヘルプデスクに連絡してアプリケーションの自動スケールアウトを有効にするか、バージョン 1.2.1 以降のクライアントと共有 ContainerPool 機能を使用してください。詳細については、「単一アプリケーションでの 100,000 を超えるスケジュールジョブのサポート」をご参照ください。

プライオリティキューを使用したアプリケーションレベルのスロットリング

スケジューリングのピーク時には、多くの日次ジョブが同時に開始され、バックエンドサービスが同時負荷を処理できない場合にシステムクラッシュのリスクがあります。SchedulerX は、2 つのアプリケーションレベルのスロットリングポリシーを提供します。キューサイズの制限によるスロットリングを有効にするか、プリエンプティブなプライオリティキューを設定することができます。詳細については、「プライオリティキューを使用したアプリケーションレベルのスロットリング」をご参照ください。

秒単位のスケジュールジョブの作成

秒単位のジョブは、ほぼリアルタイムの継続的なポーリングなど、高いリアルタイム性能を必要とするサービスに適しています。メモリグリッドと秒単位のスケジューリングにより、大量のデータを継続的に処理できます。SchedulerX の秒単位のジョブは時間指定スケジューリングの一種で、シンプルな Java ジョブ、分散 Java ジョブ、およびさまざまな実行メソッドを持つスクリプトジョブをサポートします。詳細については、「秒単位のスケジュールジョブの作成」をご参照ください。

データタイムスタンプの設定

毎日 00:30 に実行されるジョブは、前日のデータを処理する必要がある場合があり、データタイムスタンプをジョブの実行時間と異なるものにする必要があります。データタイムスタンプを使用して、タスクの実行時間に対応しないデータを処理することができます。詳細については、「データタイムスタンプの設定」をご参照ください。

ジョブの再実行

ビジネス要件の変更に伴い、過去の期間のジョブを再実行する必要が生じることがあります。たとえば、データベースにフィールドを追加した後や、先月のデータにエラーを発見した場合、スケジュールジョブを再実行してデータを再処理できます。詳細については、「ジョブを再実行してデータを再処理する」をご参照ください。

トレーシング分析への接続

分散マイクロサービスシナリオでは、エンドツーエンドのトレーシングにより、各サービスポイントでの実行詳細を視覚的に分析・特定できます。スケジュールジョブは、一般的なリアルタイムサービスよりも実行パスが長くなることが多いため、トレーシングの統合はタスクの実行時間を照会し、問題を診断する上で役立ちます。詳細については、「トレーシング分析への接続」をご参照ください。

ラベルの指定

ラベルは、グレースケールリリースやストレステストなどのシナリオで使用されます。同じアプリケーショングループ内で、SDK にラベルを設定して、特定のマシンにジョブをルーティングできます。詳細については、「ラベルの指定」をご参照ください。

ジョブスケジューリングアプリケーションのグレースフルシャットダウン

スケジュールジョブは、一定の頻度で継続的に実行されます。リリース時にアプリケーションを再起動する際、直接シャットダウンすると進行中のジョブが中断され、データの不整合やその他の問題につながる可能性があります。SchedulerX は、実行中のすべてのジョブが完了するのを待ってからプロセスをオフラインにするグレースフルシャットダウン機能を提供します。詳細については、「ジョブスケジューリングアプリケーションのグレースフルシャットダウン」をご参照ください。