如何在Spring集成中实现持久性重试行为?

时间:2014-03-27 16:02:55

标签: java spring spring-integration

我一直在尝试在Spring Integration中开发这样的算法,但它似乎不起作用。我尝试的解决方案是(伪代码):

GATEWAY (error-channel = "errorChannel")

CHANNEL (id="persistentDelayedRetryChannel")

CHANNEL (id="errorLoggingChannel")

ROUTER (input-channel="errorChannel")
  => if retryCount is not reached yet => persistentDelayedRetryChannel
  => else => errorLoggingChannel

因此,路由器侦听错误,并在需要时将此消息重新路由到持久性重试通道。否则它会记录错误并退出。当然还有其他组件,例如一个增加重试次数的头文件,以及一个从发布到错误通道的Message {MessagingException}中提取失败消息的转换器。

但是,我一直收到以下错误:

Reply message being sent, but the receiving thread has already received a reply:[Payload=org.springframework.integration.MessageHandlingException:....

有人可以解释一下为什么会发生这种情况以及如何解决这个问题吗?

谢谢!

0 个答案:

没有答案