Just as an addition, I tried for some more time. Using my Google
skills the closest I could find an issue was:
I think I found the corresponding code in testlib.py - using
protocol._InstanceFactory but that code seems to indicate that we will
need a connection for each channel/queue. Or am I missing something?
On Tue, Sep 28, 2010 at 12:37 AM, Ritesh Nadhani <rite...@gmail.com> wrote:
> 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:
>> def consume(consumerTag):
>> queue = yield conn.queue(consumerTag)
>> while True:
>> msg = yield queue.get()
>> if msg is STOP_TOKEN: # STOP_TOKEN is something the producer
>> may send to stop the consumer
>> 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
Mailing list: https://launchpad.net/~txamqp-user
Post to : firstname.lastname@example.org
Unsubscribe : https://launchpad.net/~txamqp-user
More help : https://help.launchpad.net/ListHelp