[rabbitmq-discuss] BasicQoS usage: consuming 1 by 1 messages avoind unacking the whole queue

Alfonso Pantoja alfonso.pantoja at gmail.com
Wed Apr 6 17:20:46 BST 2011


Hi,

I'm testing if it is possible to recover 1 by 1 message in order to
keep in limbo state (unacked) only that message.
It is posible?

The aim of this is to try to not lose the queue ordering on the whole
queue if a reconnection, crash, etc. occurs. because the current
message will be stored in a database and we wouldn't get other
messages until this message were processed (and a ack for it sent to
RabbitMQ).

I'm using .NET API 2.4.0 (method call BasicQoS(0,1,false) ) against
RabbitMQ 2.2.0
but does not work (API get all messages from the queue so all of them
stay unacked If no ack is sent).

Also BasicQoS does not work if first parameter is !=0 (I get a
NOT_IMPLEMENTED error)
and the same with third parameter set to true.

By the way, parameters are:
BasicQoS(uint prefetchSize, uint prefecthCount, bool global) They are
not documented but I suppose the
the call BasicQoS(0,1,false)should be what I want...


The other option would be to use BasicGet but I don't know if this
method keeps unack only 1 message (didn't tested yet) but I'm thinking
that the performance will be very low. Am I right?

Any comments would be appreaciated.

Thakn you in advance

Alfonso





More information about the rabbitmq-discuss mailing list