Connessione a RabbitMQ con Python e Pika

Mattepuffo's logo
Connessione a RabbitMQ con Python e Pika

Connessione a RabbitMQ con Python e Pika

Pika è una libreria per Python che implementa il protocollo AMPQ.

In questo articolo vediamo come usarla per connetterci a RabbitMQ.

Iniziamo con l'installazione tramite pip:

pip install pika

Qui sotto un esempio in cui inviamo 100 messaggi, e poi li leggiamo tutti:

import pika

RABBITMQ_HOST = "localhost"
QUEUE_NAME = "test-python"

def send_messages():
  connection = pika.BlockingConnection(pika.ConnectionParameters(host=RABBITMQ_HOST))
  channel = connection.channel()

  channel.queue_declare(queue=QUEUE_NAME)

  for i in range(1, 101):
    message = f"Messaggio numero {i}"
    channel.basic_publish(exchange='',
                          routing_key=QUEUE_NAME,
                          body=message.encode('utf-8'))

  connection.close()

def consume_messages():
  connection = pika.BlockingConnection(pika.ConnectionParameters(host=RABBITMQ_HOST))
  channel = connection.channel()
  channel.queue_declare(queue=QUEUE_NAME)
  print(" [*] Inizio lettura messaggi dalla coda...")

  while True:
    method_frame, header_frame, body = channel.basic_get(queue=QUEUE_NAME, auto_ack=True)
    if method_frame is None:
      print(" [*] Nessun altro messaggio nella coda.")
      break
    print(f"[x] Ricevuto: {body.decode('utf-8')}")

  connection.close()

if __name__ == "__main__":
  send_messages()
  consume_messages()

Enjoy!


Condividi

Commentami!