Guest User

Untitled

a guest
Jul 9th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. import txamqp
  2. from twisted.internet.protocol import ClientCreator
  3. from txamqp.protocol import AMQClient
  4. from twisted.internet import defer, reactor
  5. from txamqp.content import Content
  6. from txamqp.client import TwistedDelegate
  7. import time
  8.  
  9.  
  10. def receive(msg, queue):
  11. print('receiving: %s' % msg.content.body)
  12. if msg.content.body == '9':
  13. reactor.stop()
  14. else:
  15. queue.get().addCallback(receive, queue)
  16.  
  17.  
  18. @defer.inlineCallbacks
  19. def authenticate(client, username, password):
  20. yield client.authenticate(username, password)
  21. channel = yield client.channel(1)
  22. yield channel.channel_open()
  23.  
  24. #subscribe
  25. yield channel.queue_declare(queue='queue', auto_delete=True)
  26. reply = yield channel.basic_consume(queue='queue')
  27. queue = yield client.queue(reply.consumer_tag)
  28. queue.get().addCallback(receive, queue)
  29.  
  30. # send messages
  31. for i in range(10):
  32. content = Content(str(i))
  33. channel.basic_publish(routing_key='queue', content=content)
  34. print('sending: %s' % i)
  35.  
  36.  
  37. if __name__ == '__main__':
  38. import sys
  39. if len(sys.argv) != 7:
  40. print "%s host port vhost username password path_to_spec" % sys.argv[0]
  41. sys.exit(1)
  42.  
  43. host = sys.argv[1]
  44. port = int(sys.argv[2])
  45. vhost = sys.argv[3]
  46. username = sys.argv[4]
  47. password = sys.argv[5]
  48. specFile = sys.argv[6]
  49.  
  50. spec = txamqp.spec.load(specFile)
  51.  
  52. delegate = TwistedDelegate()
  53.  
  54. d = ClientCreator(reactor, AMQClient, delegate, vhost,
  55. spec).connectTCP(host, port)
  56. d.addCallback(authenticate, username, password)
  57. reactor.run()
Add Comment
Please, Sign In to add comment