work tutorial pokemon parallel how español does python rabbitmq pika

tutorial - rabbitmq python



¿Qué forma de conexión utilizar con pika? (1)

He estado tratando de averiguar qué forma de conexión debo usar cuando uso pika, tengo dos alternativas, según tengo entendido.

Ya sea la SelectConnection BlockingConnection o la SelectConnection , sin embargo, no estoy realmente seguro acerca de las diferencias entre estos dos (es decir, ¿qué es el bloqueo de la Conexión de Bloqueo? Y más)

La documentación de pika dice que SelectConnection es la forma preferida de conectarse a rabbit, ya que proporciona "múltiples métodos de notificación de eventos que incluyen select, epoll, kqueue y poll".

Así que me pregunto cuáles son las implicaciones de estos dos tipos diferentes de conexiones.

PD: Sé que no debería poner una etiqueta en el título, pero en este caso creo que ayuda a aclarar la pregunta.


SelectConnection es útil si la arquitectura de su aplicación puede beneficiarse de un diseño asíncrono, por ejemplo, hacer otra cosa mientras se completa el IO de RabbitMQ (por ejemplo, cambiar a otro IO, etc.). Este tipo de conexión utiliza devoluciones de llamada para indicar cuándo regresan las funciones. Por ejemplo, puede declarar devoluciones de llamada para

on_connected, on_channel_open, on_exchange_declared, on_queue_declared etc.

... para realizar operaciones cuando se activan estos eventos.

El beneficio es especialmente bueno si su servidor RabbitMQ (o la conexión a ese servidor) está lento o sobrecargado.

BlockingConnection en la mano es solo eso: bloquea hasta que la función llamada retorna. por lo tanto, bloqueará el subproceso de ejecución hasta que se conecte o channel_open o exchange_declared o queue_declared return, por ejemplo. Dicho esto, a menudo es más sencillo programar este tipo de lógica serializada que la lógica asíncrona SelectConnection. Para aplicaciones simples con servidores RabbitMQ receptivos, estos también funcionan correctamente, OMI.

Supongo que ya ha leído la documentación de Pika http://pika.readthedocs.io/en/stable/intro.html ; si no, ¡esta es una información absolutamente vital antes de usar Pika!

¡Aclamaciones!