radeksmg

AMQP_producer_many.py

Jul 1st, 2019
441
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.29 KB | None | 0 0
  1. #!/usr/bin/env python3
  2. """ If script executed with arguments, all of them will be send over AMQP
  3. to reciver:
  4.  
  5.    $ python producer.py -n <number of messages>
  6.  
  7. From: https://radeksm.github.io/2019/07/01/RabbitMQ_crash_course2.html
  8. """
  9. import argparse
  10. import pika
  11. import os
  12.  
  13. QNAME='queue0'
  14. RABBIT_PORT = 5672
  15. RABBIT_IP = os.environ.get("RABBIT_IP", None)
  16.  
  17. def message(seq_number=0):
  18.     _msg = "AMQP MESSAGE {:d}".format(seq_number)
  19.     return _msg
  20.  
  21. def main():
  22.     if RABBIT_IP is None:
  23.         print("Missing RABBIT_IP env variable")
  24.  
  25.     parser = argparse.ArgumentParser(description='Send some AMQP messages')
  26.     parser.add_argument('-n', type=int,
  27.                         help="Number of messages to send")
  28.     args = parser.parse_args()
  29.  
  30.     msg = message()
  31.     print('AMQP producer connecting to {}:{} with message: \"{}\"'.\
  32.           format(RABBIT_IP, RABBIT_PORT, msg))
  33.     connection = pika.BlockingConnection(pika.ConnectionParameters(RABBIT_IP, RABBIT_PORT))
  34.     channel = connection.channel()
  35.     channel.queue_declare(queue=QNAME)
  36.  
  37.     for x in range(0,args.n):
  38.         channel.basic_publish(exchange='',
  39.                               routing_key=QNAME,
  40.                               body=message(x))
  41.     connection.close()
  42.  
  43. if __name__ == '__main__':
  44.     main()
Advertisement
Add Comment
Please, Sign In to add comment