0

我有这样的情况:

一个生产者执行许多数据库查询 - 结果作为消息发送并到达单个消费者的队列(消息到达时没有特殊顺序)

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

解决此类问题的最佳方法是什么?

4

1 回答 1

1

是否有特殊原因延迟处理,直到全部到达?

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

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

于 2011-03-17T15:41:36.300 回答