猿问

如何将错误从执行程序通道路由到错误通道?

设置请参考附图。下面解释。

有一个接收请求的公共输入通道。从这个输入通道,有两个流:

  1. 流程 1 - 将请求存储到数据库中

  2. 流程 2 - 将业务处理/转发请求发送到其他外部系统

我希望流程 1 和流程 2 相互独立。所以我把 Flow 1 放在了一个 executor 通道上。这样,流 1 中的错误不会中断流 2。

流程1说明:

  1. 代码从公共输入通道读取请求并将其放入执行器通道。

  2. 从执行器通道,类 DBStore 读取请求并将其存储到数据库中。

  3. 我还有一个错误通道(项目中所有类通用),它会悄悄地记录错误

我拥有的:

在绿色框中的代码中,我定义了一个 ExpressionEvaluatingRequestHandlerAdvice,以便将执行器通道上的任何错误发送到错误通道。我假设 ExpressionEvaluatingRequestHandlerAdvice 将自动应用于执行程序通道。

相反,如果出现错误,则会将其重新发布到“公共输入通道”并重复处理,直到队列填满为止。

我需要的:

我希望执行器通道上的任何错误都被发送到错误通道,在那里它会被悄悄地记录下来并处理消息。


繁星淼淼
浏览 138回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答