如何在消费者服务总线中发送消息异常时管理错误

时间:2017-04-15 09:33:24

标签: c# nservicebus azureservicebus

我搜索如何在服务总线azure的消费者中管理异常,如何提醒发件人,我搜索像Saga这样的模式,但我不知道这是否是正确的目的。 当我读取示例代码时,在主要情况下,如果消费者中存在异常,则发件人不会发出警报。但是在生产环境中如何管理这个以避免手动解决。

我有一个运输服务要求其他服务付款,当请求开始时,运送服务上有一个标志设置为" PaymentRequested",但如果付款服务中有一个execption,旗帜仍在" PaymentRequested"永远。如何避免这种情况。

1 个答案:

答案 0 :(得分:0)

通常情况下,如果成功处理命令消息,则消费者应该发回成功的事件消息,否则应该发送失败事件消息。这就是发件人知道操作是否成功的方式。

同时发件人应定义超时以接收这些事件消息。如果消费者与异常发件人崩溃将无法在超时期限内收到通知。这可能意味着操作失败(或任何其他原因),并且发送方可以考虑再次重新发送命令(命令应该是安全重试的幂等)或由于超时而报告失败。