Как отправить файл XML в RabbitMQ, используя Python? - PullRequest
4 голосов
/ 17 февраля 2020

У меня есть xml файл с именем Test.xml, который я пытаюсь отправить RabbitMQ, используя python.

Я знаю ниже подробные сведения о Rabbit MQ

Hostname: xxx.xxxx.xxx

AMQP Port (SSL)  :4589

ESB Portal (Message Search): http://xxx.xxx.xxx:8585

RabbitMQ Web UI (https) :https://xxx.xxx.xxxx:15672 

Как это можно сделать из python?

1 Ответ

3 голосов
/ 17 февраля 2020

Это можно сделать с помощью pika , вы можете прочитать содержимое файла и отправить его в виде большой строки в RabbitMQ. А с другой стороны вы можете анализировать содержимое, используя ElementTree.fromstring.

Сведения о соединении:

credentials = pika.PlainCredentials('username', 'password')
conn = pika.BlockingConnection(pika.ConnectionParameters('host', port, 'vhost', credentials))
channel = conn.channel()

Издатель:

with open('filename.xml', 'r') as fp:
    lines = fp.readlines()
channel.basic_publish('exchange', 'queue', ''.join(lines))

Потребитель:

def on_message(unused_channel, unused_method_frame, unused_header_frame, body):
    lines = body.decode()
    doc = ElementTree.fromstring(lines)
    tags = doc.findall("tag")

    ## DO YOUR STUFF HERE

channel.basic_consume('queue', on_message)
channel.start_consuming()

Надеюсь, это поможет!

Поток RabbitMQ:

RabbitMQ flow

Ссылка: RabbitMQ документы

...