diff options
author | Rafael H. Schloming <rhs@apache.org> | 2009-10-11 16:59:06 +0000 |
---|---|---|
committer | Rafael H. Schloming <rhs@apache.org> | 2009-10-11 16:59:06 +0000 |
commit | 5dc9bbbd3345eeb042b09936703822b43a727b5c (patch) | |
tree | afd9edea1603f29bc8d08898d0999779bc6637ff /python/examples/api/drain | |
parent | c7175a7a71adcdf235f500f6ce208135f2d306a7 (diff) | |
download | qpid-python-5dc9bbbd3345eeb042b09936703822b43a727b5c.tar.gz |
added ping and drain examples for the new API
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@824108 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/examples/api/drain')
-rwxr-xr-x | python/examples/api/drain | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/python/examples/api/drain b/python/examples/api/drain new file mode 100755 index 0000000000..485985f16d --- /dev/null +++ b/python/examples/api/drain @@ -0,0 +1,62 @@ +#!/usr/bin/env python +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +import optparse +from qpid.messaging import * +from qpid.util import URL + +parser = optparse.OptionParser(usage="usage: %prog [options] ADDRESS ...", + description="Drain messages from the supplied address.") +parser.add_option("-b", "--broker", default="localhost", + help="connect to specified BROKER (default %default)") +parser.add_option("-t", "--timeout", type=float, default=0, + help="timeout in seconds to wait before exiting (default %default)") +parser.add_option("-f", "--forever", action="store_true", + help="ignore timeout and wait forever") + +opts, args = parser.parse_args() + +url = URL(opts.broker) +if args: + addr = args.pop(0) +else: + parser.error("address is required") +if opts.forever: + timeout = None +else: + timeout = opts.timeout + +# 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) +ssn = conn.session() +rcv = ssn.receiver(addr) + +while True: + try: + print rcv.fetch(timeout=timeout) + ssn.acknowledge() + except Empty: + break + except ReceiveError, e: + print e + break + +conn.close() |