Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import txamqp
- from twisted.internet.protocol import ClientCreator
- from txamqp.protocol import AMQClient
- from twisted.internet import defer, reactor
- from txamqp.content import Content
- from txamqp.client import TwistedDelegate
- import time
- import itertools
- from twisted.internet import threads
- def send(channel, content):
- reactor.callFromThread(channel.basic_publish, routing_key='queue', content=content)
- print('%s - sending: %s' % (time.ctime(), content.body))
- def send_msgs_from_for_loop(channel):
- for i in range(10000):
- content = Content(str(i))
- send(channel, content)
- @defer.inlineCallbacks
- def authenticate(client, username, password):
- yield client.authenticate(username, password)
- channel = yield client.channel(1)
- yield channel.channel_open()
- yield channel.queue_declare(queue='queue', auto_delete=True)
- reactor.callInThread(send_msgs_from_for_loop, channel)
- if __name__ == '__main__':
- import sys
- if len(sys.argv) != 7:
- print "%s host port vhost username password path_to_spec" % 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]
- specFile = sys.argv[6]
- spec = txamqp.spec.load(specFile)
- delegate = TwistedDelegate()
- d = ClientCreator(reactor, AMQClient, delegate, vhost,
- spec).connectTCP(host, port)
- d.addCallback(authenticate, username, password)
- reactor.run()
Add Comment
Please, Sign In to add comment