Messaging pattern question

Posted by Al Bundy on Stack Overflow See other posts from Stack Overflow or by Al Bundy
Published on 2010-04-07T13:00:23Z Indexed on 2010/04/07 13:03 UTC
Read the original article Hit count: 351

Filed under:
|
|
|

Process A is calculating values for objects a1, a2, a3 etc. and is sending results to the middleware queue (RabbitMQ). Consumers read the queue and process these results further. Periodically process A has to send a snapshot of these values, so consumers could do some other calculations. Values for these objects might change independently. The queue might look like this a1, a1, a2, a1, a2, a2, a3... Consumers process each item in the queue. The snapshot has to contain all objects and consumers will process this message for all objects in one go.

So the requirement is to have a queue like this: a1, a1, a3, a2, a2, [snapshot, a1, a2, a3], a3, a1 ... The problem is that these items are of different types: one type for objects like a1, a2 and other for a snapshot. This means that they should be processed in a diferent queues, but in that case there is a race condition: consumers might process objects before processing a snapshot.

Is there any pattern to solve this (quite common) problem? We are using RabbitMQ for message queueing.

© Stack Overflow or respective owner

Related posts about messaging

Related posts about rabbitmq