RabbitMQ中的回调函数,pika basic_consume 是阻塞式执行的(一个接一个)?
Is callback function in RabbitMQ, pika basic_consume is executed in blocking manner (one by one)?
我是 RabbitMQ 的新手,所以我正在查看教程 (http://www.rabbitmq.com/tutorials/tutorial-one-python.html) 在本教程中,我们使用 pika 连接通道的 basic_consume 函数来消费消息。
正如 basic_consume(https://pika.readthedocs.io/en/0.10.0/modules/channel.html) 的文档所述,它显然会消耗消息,但我的问题是,回调函数以何种方式执行?
在教程的下一部分 (http://www.rabbitmq.com/tutorials/tutorial-two-python.html) 中,我们可以检查单个线程不能同时调用两个回调函数(因为我们 运行 示例代码,每个线程一个一个地显示休眠消息。)但这在任何文档中都不能保证(正如我发现的那样。)
我想要的正是这样(对于单线程只调用一个回调函数,一条一条地处理消息。)但我想确保basic_consume以这种方式运行。我也认为这是显而易见的(因为我们需要多线程来同时处理多个回调函数)但我仍然有点困惑...
谢谢!
是的,basic_consume
的回调将在注册回调的线程上一次调用一条消息。请确保您使用的是 Pika 0.12.0
并查看 example code.
我是 RabbitMQ 的新手,所以我正在查看教程 (http://www.rabbitmq.com/tutorials/tutorial-one-python.html) 在本教程中,我们使用 pika 连接通道的 basic_consume 函数来消费消息。
正如 basic_consume(https://pika.readthedocs.io/en/0.10.0/modules/channel.html) 的文档所述,它显然会消耗消息,但我的问题是,回调函数以何种方式执行?
在教程的下一部分 (http://www.rabbitmq.com/tutorials/tutorial-two-python.html) 中,我们可以检查单个线程不能同时调用两个回调函数(因为我们 运行 示例代码,每个线程一个一个地显示休眠消息。)但这在任何文档中都不能保证(正如我发现的那样。)
我想要的正是这样(对于单线程只调用一个回调函数,一条一条地处理消息。)但我想确保basic_consume以这种方式运行。我也认为这是显而易见的(因为我们需要多线程来同时处理多个回调函数)但我仍然有点困惑...
谢谢!
是的,basic_consume
的回调将在注册回调的线程上一次调用一条消息。请确保您使用的是 Pika 0.12.0
并查看 example code.