3

バッチ/シェルスクリプトを使用して実行可能jarとしてデプロイされる1つのSpringBatchアプリケーションを開発しました。正常に動作します。

最近、SpringBatchAdminアプリケーションのリリースについて読みました。彼らのドキュメントによると、job-context.xmlをポイントする必要があり、管理アプリから起動、再起動、停止するSpringBatchアプリを管理できるようになるとのことです。今私の質問は、job-context.xmlをjarの外に保持する必要があるのか​​、それとも正確な手順は何かということです。この構成について混乱しています。これに関する洞察は非常に役立ちます。ちなみに、私はSpringBatch2.1を使用しています。

ありがとう

4

2 に答える 2

2

Spring Batch管理アプリケーションは優れたリファレンス実装であり、高度にカスタマイズ可能です。すべてのインターフェース実装は、独自のクラスを使用してSpringDIを介して置き換えることができます。UIもテンプレート駆動型(FreeMarkerだと思います)であるため、関連情報を表示したり、スキンを変更したりするようにカスタマイズできます。

私はあなたと同じようなニーズがありました-jarとして構築されたアプリに含まれる管理機能が必要です。自分のジョブを.warファイルとしてパッケージ化する必要があるという事実はあまり好きではありませんでした。代わりに、Spring Batch Adminソースから関連する構成を抽出し、ファイルシステムで動作し、組み込みJettyサーバーで実行されるデプロイメントを作成しました。

ここでスクリーンショットを参照してください:https ://github.com/regunathb/Trooper/wiki/Trooper-Batch-Web-Console

ソース、構成などはここで入手できます:https ://github.com/regunathb/Trooper/tree/master/batch-core 。このプロジェクトは実際には.warではなく.jarを作成します

于 2012-12-18T04:22:43.657 に答える
1

アプリケーションにカスタム クラスがあり、実行可能な jar としてデプロイされ、Spring バッチ管理に含まれていない場合、ジョブを開始できません。ジョブのステータスを表示し、データベースでステータスを「強制終了」することしかできません。

構成のアップロードセクションの最後にあるhttp://static.springsource.org/spring-batch-admin/reference/reference.xhtmlを見ると、次のように記載されています

アプリケーションがジョブへの参照を持っているため、プロセス内で起動可能なジョブ レジストリ ("test-job") に新しいエントリが表示されます。(起動できないジョブはプロセス外で実行されましたが、JobRepository に同じデータベースを使用したため、UI に実行が表示されます。 )

ジョブが厳密に構成可能なジョブである場合、XML のみを使用してジョブを定義し、カスタマイズされたアイテム リーダー/プロセッサ/ライターやその他のカスタム クラスを実行する必要がない場合、ジョブ XML をアップロードすると、管理サイト内。カスタム クラスがある場合、私の経験から、Spring バッチ アプリケーションを Web アプリケーション内にデプロイしてから、個別に実行するジョブを含む XML をアップロードする必要があります。

個人的には、管理ツールを使用してジョブ ステータスを表示し、いくつかのカスタム ページで統計情報を提供しました。私はジョブを実行するためにスケジューラーを残しましたが、管理サイトにアクセスできる人がジョブについて何も知らないときにジョブを開始してほしくありませんでした。基本的に、ユーザーがそれを台無しにすることなく、暖かいファジーをユーザーに与えるために使用しました。(あなたが説明しなかったエッジケースを見つけるためにそれをユーザーに任せてください)

于 2012-10-25T02:07:26.057 に答える