On 23/02/12 12:22, Cermak, Marek wrote:
> Hello Simon,
>> a) Have the slow link poll with (passive?) queue.declare()s. The declare-ok
>> you get back will tell you the number of messages in the queue at the time
>> the declare was received.
> What do you mean by _passive_ queue.declare() ? is there a way to not poll in a time loop?
Just with the passive flag set, so that if you make a mistake and
declare a queue that does not exist then you get an error rather than
recreating the queue. No big deal.
But yes, this polls.
>> b) Do the same, but using HTTP to the management plugin. You have to use
>> another protocol, which is a pain, but you can poll a ton of queues with one
>> request, so that may be useful.
> We want to limit the communication to AMQP.
>> c) Have the slow link consume with qos(1) and acks. Every time it gets a
>> message, it cancels its consumer and rejects the message (with requeue=true).
>> Then the fast link fires up, does its consuming, shuts down again, then the
>> slow link starts its consumer again. The bad news is that the first message
>> always gets its requeued flag set. The good news is, no polling.
> We can't change order of messages.
As of 2.7.0+ this will not reorder messages (assuming you only have one
slow / fast consumer pair per queue; not sure how well this even could
work if that was not true).