gpt4 book ai didi

java - 向 Camel 路由添加延迟会导致 Atomikos 超时

转载 作者:行者123 更新时间:2023-12-02 01:08:41 28 4
gpt4 key购买 nike

我有一个监听 ActiveMQ 的 Camel 路由。我添加了 10 秒的延迟,因为在开始之前需要确定另一个进程已完成。这是通过添加延迟器属性来实现的:-

<camel:route id="packageRetrievalContentAndSendToS3" delayer="10000">
<camel:from uri="activemq:{{ccs.activemq.queue.prefix}}.sr.package.and.send"/>

....extra steps....

</camel:route>

这工作正常,但问题是,我的路线现在超时了!下面留言。

Atomikos:8] c.a.icatch.imp.ActiveStateHandler        : Timeout/setRollbackOnly of ACTIVE coordinator !

我非常感谢任何关于如何解决这个问题的建议。理想情况下,我想增加该路线的超时。非常感谢

最佳答案

正如@sergei-petunin 已经评论的那样,您尝试通过等待来补偿设计问题

您的路线在您等待的事情完成之前不应收到消息。这意味着

  1. 您等待的事物会收到消息并执行其必须执行的操作
  2. 然后它会向您的路线发送一条消息
  3. 然后您的路由无需等待即可处理消息

因此,该过程的所有部分步骤都是异步且顺序完成的,因为它们相互依赖。这也称为 Pipes and Filters EIP .

如果您可以控制等待的事物,则可以通过在等待的事物和路线之间放置消息队列来轻松更改设计。

关于java - 向 Camel 路由添加延迟会导致 Atomikos 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59681259/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com