gpt4 book ai didi

grails - useOriginalMessage()和多个 'from'节点

转载 作者:行者123 更新时间:2023-12-02 14:08:23 24 4
gpt4 key购买 nike

我正在使用Grails路由插件,该插件允许使用与Java DLS语法非常相似的Groovy DSL语法定义Camel路由。

假设我有以下RouteBuilder:

class MyRoute extends RouteBuilder {
from('activemq:route1')
.to('someProcessor1')
.to('direct:route2')

from('direct:route2')
.to('someProcessor2')

onException(Throwable.class).useOriginalMessage().handled(true)
.to('activemq:route.failed')
}

如果我有一条消息以 activemq:route1开头,然后在 direct:route2中移动,但在 someProcessor2中失败,那么我最终会收到一条消息,因为它是从 activemq:route1队列中的 activemq:route.failed开头的...但这不是我想要的。如果 someProcessor2失败,我希望消息以 direct:route2开头(同样,如果 someProcessor1失败,我希望失败的队列中出现 activemq:route1消息)。

是否有任何Apache Camel功能可让我在RouteDefintion(即 from(<uri>))开头“重置”原始消息?

最佳答案

使用direct:之外的其他东西来加入您的路由(seda,vm,activemq),它将按照您的建议运行...否则,您还可以在 header 中显式保留消息的相关状态,并在onException子句中将其还原。

关于grails - useOriginalMessage()和多个 'from'节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13615958/

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