diff options
Diffstat (limited to 'qpid/python/examples/api/server')
-rwxr-xr-x | qpid/python/examples/api/server | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/qpid/python/examples/api/server b/qpid/python/examples/api/server index a9cd8579e3..d7cd53de4b 100755 --- a/qpid/python/examples/api/server +++ b/qpid/python/examples/api/server @@ -51,15 +51,12 @@ else: parser.error("address is required") # XXX: should make URL default the port for us -conn = Connection.open(url.host, url.port or AMQP_PORT, - username=url.user, - password=url.password, - reconnect=opts.reconnect, - reconnect_delay=opts.reconnect_delay, - reconnect_limit=opts.reconnect_limit) -ssn = conn.session() -rcv = ssn.receiver(addr) - +conn = Connection(url.host, url.port or AMQP_PORT, + username=url.user, + password=url.password, + reconnect=opts.reconnect, + reconnect_delay=opts.reconnect_delay, + reconnect_limit=opts.reconnect_limit) def dispatch(msg): msg_type = msg.properties.get("type") if msg_type == "shell": @@ -77,21 +74,26 @@ def dispatch(msg): result = Message("unrecognized message type: %s" % msg_type) return result -while True: - try: +try: + conn.connect() + ssn = conn.session() + rcv = ssn.receiver(addr) + + while True: msg = rcv.fetch() response = dispatch(msg) - snd = ssn.sender(msg.reply_to) + snd = None try: + snd = ssn.sender(msg.reply_to) snd.send(response) except SendError, e: print e - snd.close() + if snd is not None: + snd.close() ssn.acknowledge() - except Empty: - break - except ReceiveError, e: - print e - break +except ReceiveError, e: + print e +except KeyboardInterrupt: + pass conn.close() |