如何为 IntegrationFlow 的不同部分指定不同的 errorChannels

How to specify different errorChannels for different parts of an IntegrationFlow

我目前正在开发一个 Spring 集成 DSL 项目,我有一个流程需要根据失败的流程部分以不同方式处理错误。

我目前的方法是通过链接 .gateway 方法来创建 subFlows,但我在处理异常时遇到了问题,因为 .gateway 在发送消息后无限期地等待回复到定义的 .errorChannel,这对我的情况来说不是必需的,即使我将其配置为 .requireReply(false).

有没有其他更好的分流和条件处理异常的方法? .gateway 是否可以配置为切断流量并调用 postSend,以便在向 .errorChannel 发送消息后通道可用?

只要只使用直接通道(默认),您可以简单地将网关回复超时设置为 0,这将防止线程在错误发生后挂起 "consumed"。