summaryrefslogtreecommitdiff
path: root/qpid/python/examples/api/server
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/python/examples/api/server')
-rwxr-xr-xqpid/python/examples/api/server38
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()