pika确认信息

2024-09-30 16:41:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python代码,它一次使用一个来自RMQ的消息

message_count = queue_state.method.message_count
    if not queue_empty:
        message_cursor = 1
        while message_cursor <= message_count:
            method, properties, body = channel.basic_get(queue=QueueName, auto_ack=True)
            callback(channel, method, properties, body)
            message_cursor += 1

我在回调中对接收到的消息进行了大量解析,我得到了一个要求,即不自动确认消息,只在它们完成回调后才确认它们。我做了一些挖掘,发现有一种方法叫做基本.ack你知道吗

但我不知道如何在代码中使用它。示例是使用

channel.basicAck(deliveryTag, false).

在哪里可以获得deliveryTag的值?我应该在哪里经营basicAck?就在我回电话之后还是回电话里面?你知道吗

非常感谢


Tags: 代码消息messagequeuecountchannelbodyproperties
1条回答
网友
1楼 · 发布于 2024-09-30 16:41:56

传递标记在方法对象中可用:method.delivery标签你知道吗

从我所能看到的来看,它确实没有出现在皮卡文献中, 但是关于rabbitmq.com网站一定要给出example。你知道吗

def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)
    time.sleep( body.count('.') )
    print(" [x] Done")
    ch.basic_ack(delivery_tag = method.delivery_tag)

从引用的示例检索的示例代码。

相关问题 更多 >