【发布时间】:2012-04-26 15:51:29
【问题描述】:
基本上,我的消费者也是生产者。我们得到一个初始数据集并将其发送到队列。消费者拿走一件物品并处理它,从那时起有 3 种可能性:
- 数据很好,正在为存储放置一个“好”队列
- 数据错误并被丢弃
- 数据既不好(还)也不好(还),因此数据被分解成更小的部分并送回队列进行进一步处理。
我的问题在于第 3 步,因为队列起初增长得非常快,因此有可能将一段数据分解为队列中重复的部分,而消费者继续处理它并最终陷入无限循环.
我认为防止这种情况的方法是防止重复进入队列。我不能在客户端执行此操作,因为在一个小时的过程中,我可能有许多核心处理数十亿个数据点(让每个客户端在提交之前对其进行扫描会使我的速度太慢)。我认为这需要在服务器端完成,但是就像我提到的那样,数据非常大,我不知道如何有效地确保没有重复。
我可能会问不可能的问题,但我想我会试一试。任何想法将不胜感激。
【问题讨论】: