RabbitMQ死信队列延迟消息

时间:2016-02-17 15:01:21

标签: c# .net rabbitmq

我们正在使用RabbitMQ死信队列在特定时间从队列中获取消息。但是,有时在长时间延迟后收到消息。我们无法找到这个的根本原因。一旦计时器到期,应立即收到消息。

以下是示例代码

using (var channel = _connection.CreateModel())
{
    var queueArgs = new Dictionary<string, object> {
        { "x-dead-letter-exchange", workExchangeName}
    };

    channel.ExchangeDeclare(retryExchangeName, "direct", true, false, null);
    channel.QueueDeclare(retryQueueName, true, false, false, queueArgs);
    channel.QueueBind(retryQueueName, retryExchangeName, routingKey, null);

    var body = Utility.SerializeSoapObject(message);

    var messageBytes = Encoding.UTF8.GetBytes(body);

    IBasicProperties properties = channel.CreateBasicProperties();
    properties.Expiration = timeout; -- Time-out in milliseconds

    channel.BasicPublish(retryExchangeName, routingKey, properties, messageBytes);
}

0 个答案:

没有答案