[rabbitmq-discuss] Web use scenarios

Bill Moseley moseley at hank.org
Tue Jan 4 21:39:41 GMT 2011


Anyone have time to take a few of these on?

I know they are not specifically on-topic (and a bit open-ended) but we are
evaluating messaging solutions (and even discussing writing our own) so it
would be a huge help to get some feedback.  I'd be happy to provide more
specifics if needed.

Thanks,

On Mon, Jan 3, 2011 at 3:13 PM, Bill Moseley <moseley at hank.org> wrote:

> Hi,
>
> I'm just starting out with RabbitMQ and trying to wrap my head around a few
> concepts.  I apologize if I ask something that should be obvious or I missed
> in the docs and faq.  I'm hoping someone can help with a few scenarios, and
> please point me to further reading as needed.
>
> I'm curious about use-cases that are not directly related to RabbitMQ, but
> how to best use RabbitMQ in an web application's architecture.  Thes are
> probably very common situations.
>
> 1) Notification of job status and completion:  If the web app produces a
> request to generate an expensive PDF is there a common approach to detecting
> when the consumer is completed and the pdf is ready for downloading?  Should
> I create a single-use return queue with x-expires and/or x-message-ttl on
> the queue?   In a web app the web user may never come back to pick up the
> PDF.
>
> 2) Job sequencing:  What's a common approach to multiple step processing
> that must be done serially?  I.e. queue job "A" and when it's complete queue
> job "B".  Doesn't really seem like consumer "A" should be responsible for
> submitting job "B".  Is it better to create a consumer "AB" that submits "A"
> and waits for a message that "A" is complete and then submits job "B"?
>
> 3) Scheduling: I assume there's no facility for scheduling jobs to be
> delivered to consumers at some future time.  Is there a better approach than
> using cron to check the database for jobs that should be queued based on
> time?
>
> 4) Cancel a request:  We have some situations when a subsequent request
> should cancel processing of an earlier request.  (Frankly, I think this is a
> design problem on our end.)
>
> 5) Prevent duplicate job requests: In a web environment when things break
> problems often compound by users reloading requests that caused the problem
> in the first place.  I'm not sure RabbitMQ would be involved at all in this
> scenario, but I'm asking just in case. ;)
>
> Finally, it's great that RabbitMQ will send a message again if is is not
> ACK'd and a consumer closes its connection.  But, is there any kind of max
> retry count available?  That is, what's a good approach to prevent an errant
> job from killing all consumers one-by-one?
>
> Thanks,
>
> --
> Bill Moseley
> moseley at hank.org
>



-- 
Bill Moseley
moseley at hank.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20110104/ed1f8ec2/attachment.htm>


More information about the rabbitmq-discuss mailing list