You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

46 lines
1.5 KiB

  1. import json
  2. from pika import BlockingConnection, ConnectionParameters, PlainCredentials
  3. from pika.exchange_type import ExchangeType
  4. RMQ_HOST = 'localhost'
  5. RMQ_USER = 'rabbit'
  6. RMQ_PASS = '1234'
  7. EXCHANGE_NAME = 'amq.topic'
  8. ROUTING_KEY_CURRENT = 'rep.current'
  9. ROUTING_KEY_AVG = 'rep.average'
  10. def main():
  11. connection = BlockingConnection(
  12. ConnectionParameters(
  13. host=RMQ_HOST,
  14. credentials=PlainCredentials(RMQ_USER, RMQ_PASS)
  15. )
  16. )
  17. try:
  18. channel = connection.channel()
  19. result = channel.queue_declare(queue=ROUTING_KEY_CURRENT)
  20. channel.queue_bind(exchange=EXCHANGE_NAME, queue=result.method.queue)
  21. result = channel.queue_declare(queue=ROUTING_KEY_AVG)
  22. channel.queue_bind(exchange=EXCHANGE_NAME, queue=result.method.queue)
  23. while True:
  24. query = input('Enter Query: ')
  25. if query == 'current':
  26. channel.basic_publish(exchange=EXCHANGE_NAME,
  27. routing_key=ROUTING_KEY_CURRENT,
  28. body=query)
  29. if query == 'average':
  30. channel.basic_publish(exchange=EXCHANGE_NAME,
  31. routing_key=ROUTING_KEY_AVG,
  32. body=query)
  33. except KeyboardInterrupt:
  34. connection.close()
  35. print('Interrupted by user. Shutting down...')
  36. if __name__ == '__main__':
  37. main()