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)
Спасибо, что прочитали эти советы..