[rabbitmq-discuss] channel.flow

Amos Elliston amos at geni.com
Wed Apr 15 23:40:16 BST 2009


I think you would have to expose the channel.flow to apps, otherwise  
you may lose messages. If you're just queuing them up internally in a  
web server process, there's a strong possibility that you'll lose  
messages if the process is restarted. If I were the app writer I would  
rather catch exceptions so I could handle the messages some other way.

I'll probably block in the sync client.

On Apr 15, 2009, at 1:42 AM, Matthias Radestock wrote:

> Aman,
>
> Aman Gupta wrote:
>> Thanks! I'm trying to figure out what the behavior should be in the
>> async ruby library, since blocking is not possible. I probably need  
>> to
>> maintain a local queue per channel..
>> Is there something like Basic.PublishOk that I can hook up to a
>> callback on MQ::Queue#publish?
>
> basic.publish is asynchronous; there is no confirmation.
>
> How is your lib dealing with errors during publish? On way to deal  
> with channel.flow{active=false} in a client is to mark the channel  
> as blocked and return/raise an error on all subsequent publishes.
>
> You may also want to expose the channel.flow events to apps, so they  
> can do internal flow control.
>
>
> Matthias.





More information about the rabbitmq-discuss mailing list