如何将计时器添加到RabbitMQ接收器中



无法在此找到任何解释。

正如我对兔子的理解,消息接收消息的简单示例N C#消费者看起来像:

var factory = new ConnectionFactory() { HostName = "localhost" };
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{    
   channel.QueueBind("Testing", "DefaultExcange", "Testing");
   var consumer = new EventingBasicConsumer(channel);

   consumer.Received += (model, ea) =>
   {
      var body = ea.Body;
      ...
      ...
      channel.BasicAck(ea.DeliveryTag, false, false);
   };
  channel.BasicConsume(queue: "Testing", autoAck: false, consumer: consumer);
}

它将立即收到任何消息,如果我删除了基本数据,则消息将一遍又一遍地返回到队列直到被确认为止。

我想做的是为此添加一个计时器。如果未确认消息,我需要等待30秒钟才能为此消息进行下一个确认尝试。没有发现与此问题有关的任何内容,但我敢肯定这是常见的。我该怎么做?

兔子团队监视此邮件列表,有时只能在stackoverflow上回答问题。


您应该使用延迟的消息交换插件:

https://www.rabbitmq.com/blog/2015/04/16/scheduling-messages-with-rabbitmq/

请注意,这是一个社区插件,默认情况下不使用RabbitMq。

最新更新