我正在寻找一种可靠的方式重新排队未能正确处理的消息-此时。
我一直在研究http://dotnetcodr.com/2014/06/16/rabbitmq-in-net-c-basic-error-handling-in-receiver/,看起来在RabbitMQ API中支持重新排队消息。
然而我正在使用EasyNetQ。因此想知道如何在这里实现类似的功能。
这是否是一个好的方法?如果RabbitMQ服务器的
我一直在研究http://dotnetcodr.com/2014/06/16/rabbitmq-in-net-c-basic-error-handling-in-receiver/,看起来在RabbitMQ API中支持重新排队消息。
else //reject the message but push back to queue for later re-try
{
Console.WriteLine("Rejecting message and putting it back to the queue: {0}", message);
model.BasicReject(deliveryArguments.DeliveryTag, true);
}
然而我正在使用EasyNetQ。因此想知道如何在这里实现类似的功能。
bus.Subscribe<MyMessage>("my_subscription_id", msg => {
try
{
// do work... could be long running
}
catch ()
{
// something went wrong - requeue message
}
});
这是否是一个好的方法?如果RabbitMQ服务器的
ACK
等待超时,不ACK
消息可能会引起问题。do work
的执行时间超过了ACK
等待时间。