【发布时间】:2020-01-31 18:24:37
【问题描述】:
我们使用 Apache Camel 来触发我们应用程序中的一些进程,例如:
from("quartz2://sometThing/someQueue?cron=0+0+4+?+*+MON-SUN").setBody(constant(""))
.routeId(this.getClass().getSimpleName())
.to("jms:some-trigger-queue");
然后我们有一堆处理器离开触发队列来运行每个作业,例如:
from("jms:some-trigger-queue")
.processRef("someProcessor");
其中一些处理器会依次将消息写入 JMS 队列。我要解决的问题是,在整个过程完成之前,处理器不会将 JMS 消息提交给代理。我怀疑这是因为触发队列上有一条消息正在运行(“jms:some-trigger-queue”),并且因为处理器使用相同的上下文,它们在飞行中的消息被清除之前不会提交(仅供参考我已尝试强制在处理器中创建新事务,但没有成功)。
所以我的问题是如果我只有一个处理器(或者我不关心同时运行的处理器) - 我如何配置骆驼来触发处理器并立即继续前进(即删除触发消息从飞行中)?
【问题讨论】:
标签: java apache-camel