このトピックでは、SchedulerX ジョブのカナリアリリース機能の使用方法について説明します。
ラベルに基づくカナリアスケジューリング
ワーカーがラベルベースのルーティングポリシーに基づいてサーバーハートビートにレポートする場合、ワーカーはラベルもレポートできます。 この場合、ジョブを静的に構成するか、ジョブを動的に実行するときに、各ジョブを指定されたラベルを持つワーカーにスケジュールできます。
ソリューション 1:コピーに基づいてカナリアリリースジョブを作成する
ジョブをコピーしてカナリアリリースジョブを生成し、本番ジョブに prod ラベルを、カナリアリリースジョブに gray ラベルを追加できます。 その後、カナリアリリースジョブを使用してカナリアリリーステストを実行できます。
ソリューション 2:手動スケジューリングと自動スケジューリングを組み合わせて、ジョブのカナリアリリースを実行する
カナリアリリース期間中に検証のためにカナリアリリースワーカーで [スケジュール済みジョブを 1 回実行] する場合は、ジョブをコピーする必要はありません。 以前のジョブを引き続き使用し、SchedulerX コンソールで [指定されたラベルを 1 回手動で実行] できます。
Jenkins などの継続的インテグレーションソフトウェアを使用して、1 回限りのジョブ実行を自動化することもできます。 次の図は、自動スケジューリングの手順を示しています。
ユーザー側ノードのラベルを指定する
アプリケーションの起動時にラベルを指定する
アプリケーションを起動するときに、Properties フィールドを使用してラベルを指定できます。 次のコードは、Spring Boot プロジェクトの例です。
spring.schedulerx2.label=${label}