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