Hmm, unfortunately it didnt work. Maybe its lack of my understanding of inlineCallbacks (this is the first I am using it). Anyway, I have code pasted at:
http://www.bpaste.net/show/9823/ - modified from txamqp samples. As can be seen form the code, I am not sure how the control flow is given back to other deferred when we are doing while True: or am I missing something? Thus which queue, I consume first seems to be only getting the message and I am missing the other one. Where am I going wrong? I think I should reread how inlineCallbacks work again anyway.... On Mon, Sep 27, 2010 at 7:52 AM, Esteve Fernandez <esteve.fernan...@gmail.com> wrote: > Hi Ritesh, > > you can have two functions that returns a Deferred, each consuming > from a different queue and build a DeferredList with those two > Deferreds. For example: > > > @defer.inlineCallbacks > def consume(consumerTag): > queue = yield conn.queue(consumerTag) > > while True: > msg = yield queue.get() > doSomething(msg) > if msg is STOP_TOKEN: # STOP_TOKEN is something the producer > may send to stop the consumer > break > > @defer.inlineCallbacks > def myFunc(): > d1 = consume("consumerTag1") > d2 = consume("consumerTag2") > > dl = DeferredList([d1, d2], fireOnOneCallback=True) > yield dl > print "Finished" > > the key is in fireOnOneCallback=True, this way when any of the two > functions finish, the Deferred will be fired and the code flow will > continue. > > Cheers. > -- Ritesh http://www.riteshn.com _______________________________________________ Mailing list: https://launchpad.net/~txamqp-user Post to : txamqp-user@lists.launchpad.net Unsubscribe : https://launchpad.net/~txamqp-user More help : https://help.launchpad.net/ListHelp