【问题标题】:consumer not acknowledging message消费者不确认消息
【发布时间】:2023-10-07 18:14:01
【问题描述】:

我有一个 channel.basic_ack 但是当我签入rabbitmq admin ui时,它保持未确认而不是确认。这是我确认消息的代码

def handle_payload(self, channel, method, properties, body):
        #self.taskhub.server.invoke('SendTaskNotification', body['userId'], body['taskId'])
        discovery = body
        channel.basic_ack(method.delivery_tag)
        print "acked " + str(method.delivery_tag)
        self.medium.server.invoke('DetectDevice', discovery)

据我了解,它应该在调用 channel.basic_ack 后立即确认消息。然而这并没有发生。

【问题讨论】:

    标签: python-2.7 rabbitmq message-queue amqp pika


    【解决方案1】:

    Pika 文档http://pika.readthedocs.io/en/0.10.0/modules/adapters/blocking.html 说,delivery_tag 是默认参数。 用下面的行更改上面的代码:

    
    
    channel.basic_ack(delivery_tag=method.delivery_tag)
    
    

    【讨论】:

    • 给我发送 channel.basic_consume 语句让我检查一下。