在单个应用程序中使用多个服务激活器
Using multiple service activators in single application
目前我在同一个应用程序中有多个工作流 运行,但它们最终会 运行 在它们专用的 jvm 中。
看起来我只能拥有一个提供一种处理方法的服务激活器,无法找到如何为每个独立的工作流添加多个,本质上是一个。
非常感谢任何文档 link 或代码示例。
return IntegrationFlows.from(receivedDataChannel())
.enrichHeaders(h -> h.header("kafka_source_topic", alertsInputTopic))
.enrichHeaders(h -> h.header("target", "MLAlgo"))
.transform(Transformers.fromJson())
.filter(this::shouldProcess)
.log()
.handle(this)
.log()
.get();
所以这个 handle 方法非常适合一个工作流程,但我有几个,每个都需要自己专用的 handle 方法来完成该工作流程中的工作。我总是可以做一些 hack 来管理一个,但我想要干净的单独代码。谢谢
而不是使用 handle(this)
- 将服务代码放在单独的 class 中,将其添加为 @Bean
并将其放在原型 @Scope
中;然后
.handle("beanName")
每个人都会得到一份自己的副本。
目前我在同一个应用程序中有多个工作流 运行,但它们最终会 运行 在它们专用的 jvm 中。 看起来我只能拥有一个提供一种处理方法的服务激活器,无法找到如何为每个独立的工作流添加多个,本质上是一个。 非常感谢任何文档 link 或代码示例。
return IntegrationFlows.from(receivedDataChannel())
.enrichHeaders(h -> h.header("kafka_source_topic", alertsInputTopic))
.enrichHeaders(h -> h.header("target", "MLAlgo"))
.transform(Transformers.fromJson())
.filter(this::shouldProcess)
.log()
.handle(this)
.log()
.get();
所以这个 handle 方法非常适合一个工作流程,但我有几个,每个都需要自己专用的 handle 方法来完成该工作流程中的工作。我总是可以做一些 hack 来管理一个,但我想要干净的单独代码。谢谢
而不是使用 handle(this)
- 将服务代码放在单独的 class 中,将其添加为 @Bean
并将其放在原型 @Scope
中;然后
.handle("beanName")
每个人都会得到一份自己的副本。