【发布时间】:2017-08-15 20:17:23
【问题描述】:
我试图在互联网上找到我的问题的答案,但没有效果。据我所知,当我收到一些消息时,它一直在队列中,直到我确认它的那一刻。所以它可能很长,特别是无限长。对我来说没问题。
但是,问题是如果发送nack ??
它被重新排队了吗?这是什么意思 ?不要将其从队列中删除或将其删除并在队列末尾推送?
提前致谢,
问候
【问题讨论】:
标签: queue rabbitmq message-queue amqp
我试图在互联网上找到我的问题的答案,但没有效果。据我所知,当我收到一些消息时,它一直在队列中,直到我确认它的那一刻。所以它可能很长,特别是无限长。对我来说没问题。
但是,问题是如果发送nack ??
它被重新排队了吗?这是什么意思 ?不要将其从队列中删除或将其删除并在队列末尾推送?
提前致谢,
问候
【问题讨论】:
标签: queue rabbitmq message-queue amqp
根据the RabbitMQ documentation on NACKs,当消费者发送NACK时,它还指定消息是否应该重新排队。以 Pika 的basic_nack 为例:
channel.basic_nack(delivery_tag = method.delivery_tag, requeue = True)
如果requeue 参数设置为False,则消息将被 RabbitMQ 丢弃(因此丢失)。
如果requeue 参数设置为True,则消息将保留在队列中,直到消费者收到并确认它。
【讨论】: