我们在恢复源自 Sagas 的消息时遇到问题。
当 Saga 发送消息进行处理时,消息处理程序有时会因异常而失败。我们目前使用 try/catch,当抛出异常时,我们“回复”一个失败的消息给 Saga。这种方法的问题是不会发生可恢复性重试,因为我们正在处理消息处理程序中的错误。
我的想法是向管道添加自定义逻辑,如果命令消息实现了一些特殊的接口,如果发生异常(重试失败后),自定义逻辑将向 Saga 发送失败的消息响应,但我不确定在哪里插入允许我在重试失败后发送消息的管道。
这是一种有效的方法吗?如果没有,重试后如何解决 Saga to Handler 失败消息?