現在実行中のバッチ ジョブのステータスを監視する方法を知りたいです。私のジョブは基本的に、いくつかのデフォルトのステップを含むフォルダーを処理しているため、進行状況をユーザーに段階的に示したいと考えています。タスクレットとDB ジョブ リポジトリを使用しています。これを達成するためのサンプルコードはより役に立ちます。
ありがとうございました。
3 に答える
独自の監視アプリ/ウェブページを開発したい場合は、JobExplorer
またはJobOperator
インターフェイスを調べてください。JobExecutions を取得するメソッドを提供し、JobExecutions で StepExecutions を取得できます。これらはすべて、ジョブのステータスと内部の個々のステップを示します。
コメントに返信するように編集します。
引用された進捗情報については、Spring Batch に保存されるものではありません。ただし、2 つのインターフェイスはその点で役に立ちます。最初に進捗情報をステップ実行コンテキストに格納します。次に、タスクレットが同期タスクとして実装されていないことを確認してください。タスクレットが Spring バッチによって連続して呼び出されるように、CONTINUABLE を返す必要があります (用語を混同していた場合はご容赦ください。以前に Spring Batch を使用したことがあります)。(これはさまざまな方法で実行できます。作業を分割して tasklet execute() を呼び出すたびに、そのうちの 1 つの部分のみを処理し、すべての部分が完了したときにのみ FINISHED を返すか、別のスレッドを生成することができます。作業を実行し、タスクレットは進行状況を監視するだけです)。
そうすることで、進行状況情報でステップ実行コンテキストが継続的に更新されるため、JobExplorer と JobOperator を使用して、進行状況レポートの目的でジョブ実行 -> ステップ実行 -> ステップの実行コンテキストを取得できます。
春のバッチ管理アプリケーションを見てください。
直接引用するには:これは通常のwarファイルです。デプロイが完了すると、Web ブラウザー (例: localhost:8080/spring-batch-admin-sample) で参照し、ジョブを起動してジョブの実行を検査する機能を確認できます。
確かに、いくつかの変更を加えることで、独自の要件を実現できます。
Spring Batch ver 4.2 には、Micrometer に基づくバッチ モニタリングとメトリクス キャプチャが付属しています。同じものを活用することができます。次の表に、メトリックの一部を示します
Spring Batch を使用すると、独自のメトリックを作成することもできます。詳細については、https: //docs.spring.io/spring-batch/4.2.x/reference/html/monitoring-and-metrics.html#custom-metrics で確認できます。