Erlang/OTP Forums

Author Message

<  RabbitMQ mailing list  ~  adjusting timeout for non-acked messages to be requeued

Guest
Posted: Tue Dec 29, 2009 4:38 am Reply with quote
Guest
Hi

Guest
Posted: Tue Dec 29, 2009 1:49 pm Reply with quote
Guest
Vishnu

On Tue, Dec 29, 2009 at 4:37 AM, vishnu <pathsny@gmail.com> wrote:
> Hi
>
Guest
Posted: Tue Dec 29, 2009 8:35 pm Reply with quote
Guest
Adding back to the list, sorry stupid email client.


would anyone know how this decision is made? When unacked messages get requeued to be sent? I know it happens if the client disconnects, but does it also happen on rollback?


Im trying to setup a system whereby if my subscriber picks up an item from the queue and for some reason is unable to handle it, the item gets readded to the queue




On Tue, Dec 29, 2009 at 8:36 PM, Alexis Richardson <alexis.richardson@gmail.com (alexis.richardson@gmail.com)> wrote:
Quote:
Vishnu

On Tue, Dec 29, 2009 at 2:57 PM, vishnu <pathsny@gmail.com (pathsny@gmail.com)> wrote:
> hi, sorry Im a bit confused. But the behavior of moving the message from the
> unacknowledge queue to the ready queue is already a part of rabbitmq.


In what way?


> There
> must be some magic constant somewhere which governs this musn't there?


If there were then it need not be time-based.

alexis


> On Tue, Dec 29, 2009 at 7:18 PM, Alexis Richardson
> <alexis.richardson@gmail.com (alexis.richardson@gmail.com)> wrote:
>>
>> Vishnu
>>
>> On Tue, Dec 29, 2009 at 4:37 AM, vishnu <pathsny@gmail.com (pathsny@gmail.com)> wrote:
>> > Hi
>> >
Guest
Posted: Tue Dec 29, 2009 11:04 pm Reply with quote
Guest
Vishnu

I am not the best person to answer this question, but I can tell you
that your behaviour can be achieved without requiring timers.

Assuming you are unwilling to simply close the channel and force the
requeue, then:

1. You could explicitly requeue by re-publishing the message. No need
to use acks here.

2. You could look at what one of the many task management systems do.
For example celery or quebert.

http://ask.github.com/celery/introduction.html
http://bytebucket.org/adroll/quebert/

Or look at the list here: http://delicious.com/alexisrichardson/rabbitmq+work

3. Other ways to force a requeue. I am not going to try and describe
these yet, in case I say something misleading.

Let me know what you think.

alexis



On Tue, Dec 29, 2009 at 8:34 PM, vishnu <pathsny@gmail.com> wrote:
> Adding back to the list, sorry stupid email client.
>
> would anyone know how this decision is made? When unacked messages get
> requeued to be sent? I know it happens if the client disconnects, but does
> it also happen on rollback?
> Im trying to setup a system whereby if my subscriber picks up an item from
> the queue and for some reason is unable to handle it, the item gets readded
> to the queue
>
> On Tue, Dec 29, 2009 at 8:36 PM, Alexis Richardson
> <alexis.richardson@gmail.com> wrote:
>>
>> Vishnu
>>
>> On Tue, Dec 29, 2009 at 2:57 PM, vishnu <pathsny@gmail.com> wrote:
>> > hi, sorry Im a bit confused. But the behavior of moving the message from
>> > the
>> > unacknowledge queue to the ready queue is already a part of rabbitmq.
>>
>> In what way?
>>
>>
>> > There
>> > must be some magic constant somewhere which governs this musn't there?
>>
>> If there were then it need not be time-based.
>>
>> alexis
>>
>>
>> > On Tue, Dec 29, 2009 at 7:18 PM, Alexis Richardson
>> > <alexis.richardson@gmail.com> wrote:
>> >>
>> >> Vishnu
>> >>
>> >> On Tue, Dec 29, 2009 at 4:37 AM, vishnu <pathsny@gmail.com> wrote:
>> >> > Hi
>> >> >
Guest
Posted: Wed Dec 30, 2009 3:38 am Reply with quote
Guest
Hi Alexis

Guest
Posted: Wed Jan 06, 2010 11:03 am Reply with quote
Guest
Hi Vishnu,

On Wed, Dec 30, 2009 at 09:07:53AM +0530, vishnu wrote:
> thanks, I think Im getting a better understanding now. Initially I wanted
> to look at auto requeueing for circumstances when my client subscribing to
> events went down or got disconnected. Now my understanding is that in those
> cases, messages get auto requeued.

Correct.

> However, if I choose not to autoack, then it looks like the
> responsibility of requeuing a client, forcing a time delay on the delivery
> and also maybe forcing a limit on the number of passes through the queue is
> going to have to become subscriber responsibility. I was hoping to handle
> that as a configuration on the queue itself outside of code, but I guess
> that isn't possible.
>
> (the use case we have requires us to make sure that every message is
> processed as far as possible. Meaning actual failures and successes are sent
> onward, but failures for technical reasons require us to try again later, by
> which time the technical issue might have been resolved).

Rabbit does eventual delivery. Thus eventually, the message will be
delivered. However, it may be delivered to more than one consumer. A
message that is not ack'd will, when the channel on which it was
delivered closes (or the connection, or some other condition that I
always forget, but which Matthias pointed out within about the last
month on this list), be reinserted into its queue to be redelivered.

Thus if you set qos.prefetch to 1, don't auto-ack, and then your client
goes down, you have the following set of properties:
1) Your client will only receive the next message when it's successfully
ack'd the current message.
2) If the client crashes, at most 1 message (i.e. the message that it's
currently processing) will be requeued.
3) If you want to do timeouts, if depends where you wish to put the
timeout - kill clients if they're taking too long (this seems odd) - or
drop messages you receive (i.e. ack them but do no work) if they're
deemed too old. But yes, that's all client-side logic - we don't do TTL
in the server yet.

Matthew

_______________________________________________
rabbitmq-discuss mailing list
rabbitmq-discuss@lists.rabbitmq.com
http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
Post received from mailinglist
pennyplayersclub
Posted: Wed Oct 05, 2011 11:57 am Reply with quote
Joined: 04 Oct 2011 Posts: 8
most are prefer like this...........
View user's profile Send private message
sergiumahine9
Posted: Wed May 30, 2012 10:57 pm Reply with quote
Joined: 30 May 2012 Posts: 3
would anyone know how this decision is made? When unacked messages get requeued to be sent? I know it happens if the client disconnects, but does it also happen on rollback? Im trying to setup a system whereby if my subscriber picks up an item from the queue and for some reason is unable to handle it, the item gets readded to the queue

_________________
Cohiba Behike 56
View user's profile Send private message
wuji
Posted: Thu Sep 13, 2012 8:34 am Reply with quote
User Joined: 10 Aug 2012 Posts: 654
H.W. Bush, and mother, Barbara Bush, officially endorsed Mitt Romney five weeks weeks cheap Ralph Lauren weeks ago. His brother, former Florida Gov. Jeb Bush, also has backed
presumptive Republican nominee.So far, George W. Bush has not.And while the former former [h3]cheap replica *beep*[/h3] former president is expected to formally support Romney at some point between
and Election Day -- perhaps in a written statement -- many Republicans Republicans cheap jordan shoes Republicans doubt he will actively campaign for the party's ticket this fall.His
from the political stage stands in contrast to his predecessor, former President President [h4]cheap Ralph Lauren[/h4] President Bill Clinton, who has plunged into campaigns large and small since
office, even a race for a state Senate seat in Buffalo, N.Y.At N.Y.At [h4]cheap designer *beep*[/h4] N.Y.At a similar point in his post-presidency, Clinton tried to sway the
presidential race, appearing -- just weeks after undergoing heart surgery -- arm-in-arm arm-in-arm [h3]Cheap Ralph Lauren Shirts[/h3] arm-in-arm with the Democratic nominee, Sen. John Kerry, at a late-October rally
View user's profile Send private message

Display posts from previous:  

All times are GMT
Page 1 of 1
This forum is locked: you cannot post, reply to, or edit topics.

Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum