[2] RabbitMQ – Python

22 marca 2022 Wyłączono przez Adam [zicherka] Nogły

To jest przykład użycia RabbitMQ w Pythonie.

[1] Zainstaluj bibliotekę klienta AMQP.

# zainstaluj z EPEL
[root@vlsr01 ~]# dnf --enablerepo=epel install python3-pika

[2] To jest przykład wysyłania wiadomości w Pythonie.

Na przykład połącz się z RabbitMQ na [localhost] z użytkownikiem [zicherlab], virtualhost [my_vhost].

[user01@vlsr01 ~]# mcedit send_msg.py
# stwórz nowy
import pika
credentials = pika.PlainCredentials('zicherlab', 'TajneHasło')
connection = pika.BlockingConnection(pika.ConnectionParameters(
                                     'localhost',
                                     5672,
                                     '/my_vhost',
                                     credentials))
channel = connection.channel()
channel.queue_declare(queue='Hello_World')
channel.basic_publish(exchange='',
                      routing_key='Hello_World',
                      body='Hello RabbitMQ World!')
print(" [x] Sent 'Hello_World'")
connection.close()

[user01@vlsr01 ~]# python3 send_msg.py
 [x] Sent 'Hello_World'

[3] Zainstaluj bibliotekę klienta AMQP.

# zainstaluj z EPEL
[root@vlsr02 ~]# dnf --enablerepo=epel install python3-pika

[4] To jest przykład odbierania wiadomości w Pythonie.

[user01@vlsr02 ~]$ mcedit receive_msg.py
# stwórz nowy
import signal
import pika
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
signal.signal(signal.SIGINT, signal.SIG_DFL)
credentials = pika.PlainCredentials('zicherlab', 'TajneHasło')
connection = pika.BlockingConnection(pika.ConnectionParameters(
                                     '192.168.100.101',
                                     5672,
                                     '/my_vhost',
                                     credentials))
channel = connection.channel()
channel.queue_declare(queue='Hello_World')
def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)
channel.basic_consume('Hello_World', callback, auto_ack=True)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()

[user01@vlsr02 ~]$ python3 receive_msg.py
 [*] Waiting for messages. To exit press CTRL+C
 [x] Received b'Hello RabbitMQ World!'
# odebrano wiadomość wysłaną w [2]