2011-03-17 62 views
0

我有这样的情况:变化单个生产者单个消费者的问题

一个单一的生产者执行很多的数据库查询 - 结果发送的消息,并到达了单个消费者的队列(邮件没有到达特殊订单)

另一方面 - 单个消费者读取这些消息,并且只在所有消息到达时才开始处理消息。

解决这类问题的最好方法是什么?

谢谢!

回答

0

是否有特殊的原因延迟处理,直到所有人都到达?

我过去使用得相当成功的一种方法是将消息出队并将消息中的相关数据和序列号保存到本地存储中。此外,随着每封邮件的到达,我会增加收到的邮件数量以及存储期望的邮件总数。最后,所有消息都已到达,增量计数器等于预期的消息数量,我执行实际工作。

通过这种方式,我们能够接收到所有消息,但只能根据您的要求执行实际工作。