形成连接与鼠兔使用的(Which form of connection to use with pi

2019-07-31 00:45发布

我一直在试图找出在使用鼠兔,我有两个备选方案,据我了解,我应该使用哪种连接形式。

无论是BlockingConnectionSelectConnection ,但是我真的不知道有关之间的差异这两个(即什么是BlockingConnection阻止?多)

为文档pikaSelectConnection是连接到兔子,因为它提供的优选方式“多个事件通知方法,包括选择,epoll的,kqueue的和轮询”。

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

PS:我知道我不应该把一个标签的称号,但在这种情况下,我认为这确实有助于澄清问题。

Answer 1:

该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服务器简单的应用程序,这些工作还OK IMO。

我想你读过鼠害的文档已经http://pika.readthedocs.io/en/stable/intro.html ,如果没有,那么这绝对是至关重要的信息使用前鼠兔!

干杯!



文章来源: Which form of connection to use with pika