[rabbitmq-discuss] Messages Timeout in Queue

Alexis Richardson alexis.richardson at gmail.com
Mon Jul 6 19:33:51 BST 2009


Gagan,

On Mon, Jul 6, 2009 at 7:02 PM, GAGAN ARORA<gaganarora.itm at gmail.com> wrote:
> 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.

In your document you said:

"Case1: User B sending his message to UserB Exchange which will route
message to User A queue but User A is not connected to any of servers.
At this point of  all messages sent to Queue A should be dropped."

If this is happening then the messages will be discarded and not
queued in Queue.

alexis



> 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
>> >> >> >
>> >> >> >
>> >> >
>> >> >
>> >
>> >
>
>




More information about the rabbitmq-discuss mailing list