[rabbitmq-discuss] Messages Timeout in Queue

GAGAN ARORA gaganarora.itm at gmail.com
Mon Jul 6 19:02:24 BST 2009


Alexis

a) when the User A is not logged into server 1 or server 2, any
messages sent to them by User B are discarded
>> Actually during this case no consumer would be listening to User A queue
and hence the messages can't be discarded and would be queued in Queue.

b) but, when User A is logged in to server 1, any messages sent by
User B that may be routed to User A are queued in Queue A,
>> No of messages increases.

c) .... delivered when User A logs into server 2.
>> A large no of messages get delieverd.

It is a constraint in my system that I have to initialize consumer when User
A connects to Server2.

On Mon, Jul 6, 2009 at 9:28 PM, Alexis Richardson <
alexis.richardson at gmail.com> wrote:

> Gagan
>
> As I understood from your document:
>
> a) when the User A is not logged into server 1 or server 2, any
> messages sent to them by User B are discarded
> b) but, when User A is logged in to server 1, any messages sent by
> User B that may be routed to User A are queued in Queue A, and then
> ...
> c) .... delivered when User A logs into server 2.
>
> Provided that you can implement this efficiently (see other email)
> then the consumer at User A only needs to discard messages that are
> older than one minute, and that were not already discarded due to (a)
> above.  So unless the time interval between A logging into server 1,
> and A logging into server 2, is "quite long" then the 'timestamp'
> method adds very little overhead.
>
> Is that correct or have I missed something?
>
> alexis
>
>
>
>
>
>
> On Sat, Jul 4, 2009 at 8:28 PM, GAGAN ARORA<gaganarora.itm at gmail.com>
> wrote:
> > Hi Alexis
> >
> > My system is similar to an IM system and is using RabbitMQ for presence
> > updates and have designed it in such a way that a consumer subscribes to
> a
> > queue only when it comes online.Now the issue is as stated by you there
> will
> > be a large no of messages ready to be deleivered when a user comes
> online.
> > Checking timestamp for each message will result in high cost.
> >
> > There can be a solution in which a message can be published using
> immediate
> > flag. But it is desired by consumer to get all messages which are less
> than
> > 1 minute old.
> >
> > Can you suggest some other solution for achieving this?
> >
> > Thanks
> > Gagan Arora
> >
> >
> >
> >
> > On Sat, Jul 4, 2009 at 3:32 PM, Alexis Richardson
> > <alexis.richardson at gmail.com> wrote:
> >>
> >> Gagan,
> >>
> >> On Fri, Jul 3, 2009 at 5:08 PM, GAGAN ARORA<gaganarora.itm at gmail.com>
> >> wrote:
> >> > Hi Alexis
> >> > The problem statement here is I dont want my messages in queue for
> more
> >> > than
> >> > 1 minute.
> >>
> >> The easiest way to do this is for the client to keep consuming the
> >> messages from the queue.
> >>
> >> However: presumably you want messages to be ignored in the case where
> >> (a) there is no consumer to get the messages from the queue; and (b)
> >> the messages are more than one minute old.
> >>
> >> If so then: Have you considered putting a timestamp on the messages?
> >> That way, when a consumer starts taking messages from the queue, it
> >> can simply check the timestamps and throw away anything 'old'.  This
> >> solution works just fine when (i) you don't need real time accuracy
> >> ie. "about a minute" is just as good as "exactly a minute", and
> >> provided that (ii) there aren't too many messages to throw away.
> >> Judging by the document that you sent, both (i) and (ii) are true.
> >>
> >> Does this help?
> >>
> >> alexis
> >>
> >>
> >> > I have tried expiration property while publishing a message but
> >> > later came to know that it is still not implemented. Can you help me
> out
> >> > in
> >> > figuring some alternate approach?
> >> > Thanks
> >> > Gagan Arora
> >> >
> >> > On Fri, Jul 3, 2009 at 8:17 PM, Alexis Richardson
> >> > <alexis.richardson at gmail.com> wrote:
> >> >>
> >> >> Gagan,
> >> >>
> >> >> On Fri, Jul 3, 2009 at 3:10 PM, GAGAN ARORA<gaganarora.itm at gmail.com
> >
> >> >> wrote:
> >> >> > Hi
> >> >> > Is it possible to set message time out in Java client API, so that
> >> >> > messages
> >> >> > drop out from queue after some interval of time if nobody consumes
> >> >> > it?.
> >> >>
> >> >> Not yet but this is a feature have been asking for quite a bit.  It's
> >> >> on our roadmap.
> >> >>
> >> >> There may be other ways to achieve what you want.
> >> >>
> >> >> alexis
> >> >>
> >> >>
> >> >>
> >> >> > Thanks
> >> >> > Gagan Arora
> >> >> > _______________________________________________
> >> >> > rabbitmq-discuss mailing list
> >> >> > rabbitmq-discuss at lists.rabbitmq.com
> >> >> >
> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
> >> >> >
> >> >> >
> >> >
> >> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20090706/95602428/attachment.htm 


More information about the rabbitmq-discuss mailing list