Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from twisted.internet.defer import inlineCallbacks
- from twisted.internet import reactor, task
- from twisted.internet.protocol import ClientCreator
- from twisted.python import log
- from txamqp.protocol import AMQClient
- from txamqp.client import TwistedDelegate
- from txamqp.content import Content
- import txamqp.spec
- EXCHANGE = "non.existent.exchange"
- @inlineCallbacks
- def gotConnection(conn, username, password):
- print "Connected to broker."
- #yield conn.authenticate(username, password) # see bug #949874
- yield conn.start({"LOGIN": username, "PASSWORD": password})
- chan = yield conn.channel(1)
- yield chan.channel_open()
- msg = Content("dummy")
- msg["delivery mode"] = 2
- print "Sending message to non-existent exchange"
- yield chan.basic_publish(exchange=EXCHANGE, content=msg)
- @inlineCallbacks
- def quit():
- try:
- yield chan.channel_close()
- chan0 = yield conn.channel(0)
- yield chan0.connection_close()
- finally:
- reactor.stop()
- reactor.callLater(3, quit)
- if __name__ == "__main__":
- import sys
- if len(sys.argv) < 8:
- print "%s host port vhost username password path_to_spec" % sys.argv[0]
- print "e.g. %s localhost 5672 / guest guest ../../specs/standard/amqp0-8.stripped.xml" % sys.argv[0]
- sys.exit(1)
- host = sys.argv[1]
- port = int(sys.argv[2])
- vhost = sys.argv[3]
- username = sys.argv[4]
- password = sys.argv[5]
- spec = txamqp.spec.load(sys.argv[6])
- delegate = TwistedDelegate()
- d = ClientCreator(reactor, AMQClient, delegate=delegate, vhost=vhost,
- spec=spec).connectTCP(host, port)
- d.addCallback(gotConnection, username, password)
- def whoops(err):
- if reactor.running:
- log.err(err)
- reactor.stop()
- d.addErrback(whoops)
- reactor.run()
Add Comment
Please, Sign In to add comment