aboutsummaryrefslogtreecommitdiffstats
path: root/rmq/publisher.py
blob: 4ba9db982cb6a489f5fddee8f8153d456b0473e3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import pika

def publish(message, username='guest', password='guest', host='localhost', port=5672, queue='', routingkey='', exchange='', exchange_type=''):
    credentials = pika.PlainCredentials(username, password)
    connection = pika.BlockingConnection(pika.ConnectionParameters(host, port, '/', credentials))
    properties = pika.BasicProperties(content_type='text/plain', delivery_mode=1)

    channel = connection.channel()
    channel.queue_declare(queue=queue, durable=False)
    channel.exchange_declare(exchange=exchange, exchange_type=exchange_type)
    channel.queue_bind(exchange=exchange, queue=queue, routing_key=routingkey)

    result = channel.basic_publish(
                exchange=exchange,
                routing_key=routingkey,
                body=message,
                properties=properties
    )

    if result:
        print(f"Connecting to host: {host} port: {port} exchange: {exchange} queue: {queue}", flush=True)
    else:
        print("not delivered")

    connection.close()