是的,您可以使用来自 RabbitMQ 的消息并明确确认您成功处理的消息。您可以在 RabbitMQ 网站上的第二个教程中找到完整示例。但这里是本教程的相关部分:
设置使用者时,将noAck("no manual ack") 设置为 false,以便 .NET 客户端库不会自动确认消息:
channel.BasicConsume(queue: "task_queue", noAck: false, consumer: consumer);
Run Code Online (Sandbox Code Playgroud)在您的消费者回调中,您明确地确认了一条消息:
channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false);
Run Code Online (Sandbox Code Playgroud)您可以确认一条消息(multiple为假),也可以确认直到并包括这条消息(multiple为真)的所有消息。
您还可以“取消确认”消息,例如,RabbitMQ 可以将其重新排队并将其发送给另一个工作人员。与确认一样,您可以判断是否要取消确认一条或所有消息。此外,您可以将该requeue标志设置为 true 或 false,以指示消息是否应重新排队或丢弃。
| 归档时间: |
|
| 查看次数: |
2910 次 |
| 最近记录: |