RabbitMQ — это программное обеспечение для создания очередей сообщений, также известное как брокер сообщений или диспетчер очередей. Просто сказано; это программное обеспечение, в котором определены очереди, к которым подключаются приложения для передачи сообщения или сообщений. Сообщение может содержать любую информацию.

Попробуйте установить на локальный Docker

Предполагая, что рабочий стол Docker установлен, мы используем команду

docker pull rabbitmq: 3.8.15-rc.2-management

чтобы получить образ RabbitMQ Docker из DockerHub. После того, как образ Docker загружен и сохранен локально, мы можем запустить контейнер RabbitMQ, используя следующую команду.

docker run -d — имя хоста rabbitmq — имя rabbit -p:15672:15672 .8.15-rc.2-management

or

docker run — rm -it — имя хоста my-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3.8.15-rc.2-management

после запуска вы можете получить доступ к пользовательскому интерфейсу rabbitMQ «localhost: 15672»

имя пользователя и пароль по умолчанию guest:guest

Создайте простую программу производителя (отправителя) с помощью python3.

import pika, os, logging, time
logging.basicConfig()

url = os.environ.get('CLOUDAMQP_URL','amqp://guest:guest@localhost/%2f')
params = pika.URLParameters(url)
params.socket_timeout = 5

connection = pika.BlockingConnection(params) # Connect to CloudAMQP
channel = connection.channel() # start a channel
channel.queue_declare(queue='pdfprocess') # Declare a queue
for x in range(1000):
    # Message to send to rabbitmq
    bodys = 'data ke '+str(x+1)
    
    channel.basic_publish(exchange='', routing_key='pdfprocess', body=bodys)
    print ("[x] Message sent to consumer = "+bodys)
    a = x % 100
    if (a == 0):
        time.sleep(2)
connection.close()

Создайте простого производителя для получения данных из очереди

import pika, sys, os

def main():
    connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
    channel = connection.channel()

    channel.queue_declare(queue='pdfprocess')

    def callback(ch, method, properties, body):
        print(" [x] Received %r" % body)

    channel.basic_consume(queue='', on_message_callback=callback, auto_ack=True)

    print(' [*] Waiting for messages. To exit press CTRL+C')
    channel.start_consuming()

if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        print('Interrupted')
        try:
            sys.exit(0)
        except SystemExit:
            os._exit(0)

Спасибо, что прочитали эти советы..