我有一个可以从命令行运行的 spring 批处理应用程序。批处理作业的流程是当它开始时,它从队列中读取消息并转换然后写入数据库。现在为此,我使用 Spring Batch 中的 JmsItemReader 和内部 read() 方法,我有我的逻辑。现在的问题是,当这个过程开始时,队列中可能没有消息存在,在这种情况下,我想停止处理整个批次。
这如何在春季批次中实现?基本上,当您使用 JmsItemReader 时会发生什么,它会不断地 ping jms 代理并读取消息,然后休眠一段时间。现在,如果没有要处理的消息,那么我们为什么要保持批处理进程运行并让它消耗 CPU。我希望它按照计划在第二天再次运行。
谢谢