On Tue, Sep 20, 2011 at 12:26:15PM +0200, Gerd Stolpmann wrote:
> Am Montag, den 19.09.2011, 18:08 +0100 schrieb Richard W.M. Jones:
> > On Mon, Mar 28, 2011 at 04:03:09PM +0200, Gerd Stolpmann wrote:
> > > the ocaml team at Mylife is proud to release another library to the
> > > public: Netamqp is a client of the AMQP-0-9-1 protocol which is used to
> > > talk to message queue servers. Netamqp is an independent implementation
> > > of such a client, and not simply a wrapper around a C library.  Netamqp
> > > has been tested against RabbitMQ.
> > 
> > Gerd, have you tried to interoperate with any other language?
> 
> Well, this was developed for Mylife in a project where the sender was
> written in Python. (I don't have access to this code anymore, though,
> since I left Mylife.)
> 
> > I tried examples/t_sender.ml along with the following Python receiver
> > (all on the same RabbitMQ instance), but the Python code didn't appear
> > to see any messages at all.  I'm quite probably doing something stupid.
> 
> What's missing here is that you need to bind the queue to an exchange.
> Remember that t_sender only sends the message to the exchange amq.direct
> with a routing key of test_xy_routing_key. It does not send the message
> to test_xy directly (which is not possible). Without binding, the
> exchange just drops unroutable messages.
> 
> Don't know exactly how to bind in Python, but watch out for a method
> queue_bind.

Thanks, that works.  For future reference, below is the full
working receiver.

Rich.

----------------------------------------------------------------------
#!/usr/bin/python

import pika

connection = pika.BlockingConnection(pika.ConnectionParameters(
        'localhost'))
channel = connection.channel()

channel.queue_declare(queue='test_xy')

channel.queue_bind(exchange='amq.direct',
                   queue='test_xy',
                   routing_key='test_xy_routing_key')

def callback(ch, method, properties, body):
    print " [x] Received %r" % (body,)

channel.basic_consume(callback,
                      queue='test_xy',
                      no_ack=True)

print ' [*] Waiting for messages. To exit press CTRL+C'
channel.start_consuming()
----------------------------------------------------------------------

-- 
Richard Jones
Red Hat

-- 
Caml-list mailing list.  Subscription management and archives:
https://sympa-roc.inria.fr/wws/info/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

Reply via email to