由于连接中断而导致 BasicPublish 失败后重新发送消息的正确方法

时间:2021-04-09 21:13:05

标签: rabbitmq

我使用 C# 客户端。

有时,在我使用 BasicPublish 发送消息之前,连接会丢失。发生这种情况时,我想重试发送消息,最好是在连接恢复后。

try
{
    channel.BasicPublish("exchange", "routingKey", basicProperties, body);
}
catch (OperationInterruptedException ex)
{
    // Connection lost! How to try again sending the message when the connection is up again?
}

执行此操作的最常见模式是什么?我已经阅读了很多文档,我知道发布者确认机制可以让您订阅 BasicAcks 和 BasicNacks,但是在连接中断的情况下不会发送 BasicNack 事件。所以我可以知道消息何时成功发送,但在连接断开的情况下失败时不知道。

你有什么建议吗? C# 客户端库中是否有自动执行此操作的机制?我错过了什么?

谢谢!

0 个答案:

没有答案
相关问题