Ale*_*exC 9 python rabbitmq python-2.7 pika
pika教程中的所有示例都以客户端调用结束start_consuming(),这会启动无限循环.这些例子对我有用.
但是,我不希望我的客户端永远运行.相反,我需要我的客户端消耗消息一段时间,例如15分钟,然后停止.
我该如何做到这一点?
Mik*_*ike 14
你可以用自己的循环时间消耗的消息之一,说你有一个channel和queue设置.以下将检查队列是否为空,如果不是,则弹出一条消息.
queue_state = channel.queue_declare(queue, durable=True, passive=True)
queue_empty = queue_state.method.message_count == 0
Run Code Online (Sandbox Code Playgroud)
声明已存在的队列,并设置被动标志允许您查询其状态.接下来我们处理一条消息:
if not queue_empty:
method, properties, body = channel.basic_get(queue, no_ack=True)
callback_func(channel, method, properties, body)
Run Code Online (Sandbox Code Playgroud)
这callback_func是我们正常的回调.当您想要以这种方式处理时,请确保不向队列注册回调.
# DO NOT
channel.basic_consume(callback_func, queue, no_ack=True)
Run Code Online (Sandbox Code Playgroud)
这将使手动消耗做奇怪的事情.我已经看到如果我事先做过这个调用,queue_declare代码实际上会处理一条消息.
| 归档时间: |
|
| 查看次数: |
4130 次 |
| 最近记录: |