使用wildfly 15和仅JavaEE(不使用spring),我需要使用Jms队列中的消息,以便使用Jbatch依次为每条消息创建一个新作业,而没有作业重叠。
例如:
JMS队列:-> msgC-> msgB-> msgA
批处理:
有可能实现这一目标吗?
答案 0 :(得分:0)
并行或以正确的顺序处理消息是JMS客户端中的一些标准行为,您只需配置即可正确执行。这就是为什么要排队。只要确保您只有一个消息驱动的Bean在工作,就应该确保您只有一个进程并且没有并行运行。
如果将任务移交给批处理API,则将由另一组线程处理该任务,现在您需要手动确保一个作业终止,然后才能开始下一个作业。因此,您的消息驱动bean将不得不轮询并等待批处理执行。
您为什么要这样做,因为这只会使您的生活变得更加复杂? 我相信您仍然可以从批处理步骤的简单编排,重新启动功能或某些并行执行中受益,而这些必须自己在消息驱动的Bean中进行。