コマンドラインから実行できるSpringBatchアプリケーションが1つあります。バッチジョブのフローは、開始時にキューからメッセージを読み取り、変換してからdbに書き込みます。今これのために私は春のバッチからJmsItemReaderを使用していて、read()メソッドの中に私のロジックがあります。ここで、このプロセスの開始時にキューにメッセージが存在しない可能性があるという質問があります。このシナリオでは、バッチ全体の処理を停止します。
これはSpringBatchでどのように達成できますか?基本的に、JmsItemReaderを使用すると、jmsブローカーに継続的にpingを実行し、メッセージを読み取ってから一定期間スリープします。ここで、処理するメッセージがない場合、なぜバッチプロセスを実行し続け、CPUを消費させる必要があるのでしょうか。翌日も予定通りに走らせたいです。
ありがとう