首页 > 解决方案 > 从 Jms 消息接收创建作业

问题描述

使用wildfly 15并且仅使用JavaEE(无spring)我需要使用Jms队列中的消息,以便为每条消息按顺序使用Jbatch创建一个新作业,而不会出现作业重叠。

例如:

JMS 队列:--> msgC --> msgB --> msgA

批处理

有可能做到这一点吗?

标签: jmsjbatch

解决方案


并行或正确顺序处理消息是 JMS 客户端中的一些标准行为,您可以简单地配置以正确处理。这就是为什么你有一个队列。只需确保您只有一个消息驱动 bean 在其上工作,这应该确保您有一个进程并且没有并行运行。

如果您将任务移交给批处理 API,一组不同的线程将处理它,现在您需要手动确保一个作业在下一个作业开始之前终止。因此,您的消息驱动 bean 将不得不轮询并等待批处理执行。

你为什么要这样做,因为它只会让你的生活更加复杂?我相信您仍然可以从批处理步骤的简单编排、重新启动功能或一些您必须自己在消息驱动 bean 中涵盖的并行执行中受益。


推荐阅读