gpt4 book ai didi

python - pika 使用哪种连接形式

转载 作者:IT老高 更新时间:2023-10-28 22:12:41 27 4
gpt4 key购买 nike

我一直在试图弄清楚在使用 pika 时应该使用哪种连接形式,据我所知,我有两种选择。

BlockingConnectionSelectConnection,但我不太确定这两者之间的区别(即 BlockingConnection 阻塞是什么?等等)

pika 的文档说 SelectConnection 是连接到 rabbit 的首选方式,因为它提供了“多种事件通知方法,包括 select、epoll、kqueue 和 poll”。

所以我想知道这两种不同类型的连接的含义是什么?

PS:我知道我不应该在标题中添加标签,但在这种情况下,我认为它确实有助于澄清问题。

最佳答案

如果您的应用程序架构可以从异步设计中受益,则 SelectConnection 很有用,例如在 RabbitMQ IO 完成时做其他事情(例如切换到其他 IO 等)。这种类型的连接使用回调来指示函数何时返回。例如,您可以为

声明回调

on_connected、on_channel_open、on_exchange_declared、on_queue_declared 等

...在这些事件被触发时执行操作。

如果您的 RabbitMQ 服务器(或与该服务器的连接)速度较慢或过载,则该好处尤其明显。

BlockingConnection 就是这样 - 它阻塞直到被调用的函数返回。因此它将阻塞执行线程,直到连接或 channel_open 或 exchange_declared 或 queue_declared 返回例如。也就是说,编写这种序列化逻辑通常比异步 SelectConnection 逻辑更简单。对于具有响应式 RabbitMQ 服务器的简单应用程序,这些在 IMO 上也可以正常工作。

我想你已经阅读了 Pika 文档 http://pika.readthedocs.io/en/stable/intro.html ,如果没有,那么在您使用 Pika 之前,这是绝对重要的信息!

干杯!

关于python - pika 使用哪种连接形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11987838/

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