gpt4 book ai didi

python - Pika:如何同步消费消息

转载 作者:太空狗 更新时间:2023-10-30 01:54:23 26 4
gpt4 key购买 nike

我想定期运行一个进程(比如每 10 分钟一次,或每小时一次)从队列中获取所有消息,处理它们然后退出。有什么方法可以用 pika 做到这一点,还是我应该使用不同的 python 库?

最佳答案

我认为这里的理想解决方案是使用 basic_get方法。它将获取一条消息,但如果队列已经为空,它将返回 None。这样做的好处是您可以用一个简单的循环清除队列,然后在返回 None 后简单地中断循环,而且与多个消费者一起运行 basic_get 是安全的。

这个例子基于我自己的库; amqpstorm , 但您可以使用 pika 轻松实现相同的功能

from amqpstorm import Connection

connection = Connection('127.0.0.1', 'guest', 'guest')
channel = connection.channel()
channel.queue.declare('simple_queue')
while True:
result = channel.basic.get(queue='simple_queue', no_ack=False)
if not result:
print("Channel Empty.")
# We are done, lets break the loop and stop the application.
break
print("Message:", result['body'])
channel.basic.ack(result['method']['delivery_tag'])
channel.close()
connection.close()

关于python - Pika:如何同步消费消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25835077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com