On 7/20/06, Adrian Neaga <[EMAIL PROTECTED]> wrote:
Exactly, no messages get delivered until the one that failed is retried for
3 times, i've been told that is the way queues work.

Yes - otherwise ordering would be broken.

What i would want is to have messages delivered no matter if there was one
failed before, that kind of breaking the queue.
I dont want to wait 1 hours for it to try redelivering a message for the 3d
time to get all the messages that came in the meantime.
I'd appreciate any ideas of how this could be implemented.

Well, normally you use a queue as a load balancer. Put 1000 messages
on a queue and have them load balanced across many threads, mayb in
many JVMs. So just because 1 thread is redeliverying a message a few
times to deal with failure doesn't mean that other threads/JVMs can't
be processing the other messages..

So if you really don't want to stop 1 bad message slowing you down,
run many consumers.

You can control exactly how long to spend trying to redeliver failed
messages; then once that is reached, its sent to a dead letter queue.
So you could if you want just retry once (or never) and just send the
message to a dead letter queue then at some point in the future (hours
or days even) replay messages on the dead letter queue back again.

--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to