使用发布者确认时,是否可以恢复裸报



使用发布者确认时,是否可以恢复裸报?我一直在查看Channel_BasicNacks的事件参数,但没有找到与之对应的对象或属性。

即:

_factory = new ConnectionFactory
{
        HostName = Settings.HostName, UserName = Settings.UserName, Password = Settings.Password,
        AutomaticRecoveryEnabled = true
};
_connection = _factory.CreateConnection();
Channel = _connection.CreateModel();
Channel.BasicAcks += Channel_BasicAcks;
Channel.BasicNacks += Channel_BasicNacks;
Channel.ConfirmSelect();
Channel.QueueDeclare(Settings.QueueName, true, false, false, null);
}
private void Channel_BasicNacks(object sender, RabbitMQ.Client.Events.BasicNackEventArgs e)
{
    IModel model = (IModel)sender;
    throw new NotImplementedException();
}

您可以尝试再次重新发送basic.nack 'ed 消息,直到它被 basic.ack 确认。

来自确认(又称发布者确认)(否定确认部分):

仅当负责队列的 Erlang 进程中发生内部错误时,才会传递basic.nack

basic.nack不是一种常见的服务器方法(我从未见过它),但应该可以通过 rabbitmqctl eval 通过破坏一些内部结构来触发它。

最新更新