gpt4 book ai didi

apache-camel - 如何在多个 Apache Camel 路由中包含常见行为?

转载 作者:行者123 更新时间:2023-12-04 01:56:27 24 4
gpt4 key购买 nike

我在 Spring Boot 1.5.8 应用程序中使用 Camel 2.19.2。例如,如果我想让我的几条路线成为“状态感知”,我该如何实现?我所说的“状态感知”是指路由将启动,通知一个组件工作流已经开始,然后它会执行特定于路由的逻辑,当它完成时,它会通知一个组件工作流已经完成。如果可能的话,我希望这会自动发生,而不必在我想使用此功能的每个路由构建器中调用特定逻辑。

这里是一个代码示例,就像我的意思:

public class FooRouteBuilder extends StatusAwareRouteBuilder {
@Override
public void configure() {
// Here I want to have this route know how to notify something
// that this processing has begun, but I do not want to have
// to explicitly call a processor to make it happen, but it
// should know what to do by virtue of extending a custom
// route builder, if appropriate, or by some other/better
// mechanism

// Now conduct any route-specific logic
from("vm:myAction")
.process("myProcessor");

// Now handle the status notification that this is finished...
// Here I want to have this route know how to notify something
// that this processing has finished
}
}

从概念上讲,这几乎就像 AOP,所以我希望能够在一个地方定义这个行为,并将它包含在一些需要使用这个行为的路由中。有什么办法可以做到这一点?我看到有用于测试的 adviceWith,但我需要它来进行常规操作。提前致谢。

最佳答案

我认为 RoutePolicy 和 RoutePolicyFactory 可能是答案,即您可以在路由或交换开始/停止时调用回调。

有关详细信息,请参阅 http://camel.apache.org/routepolicy.html

关于apache-camel - 如何在多个 Apache Camel 路由中包含常见行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50275601/

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