0

我正在实施一个审查系统,用户上传需要审查的数据项,审查人员对其进行审查并提供意见。每个数据项需要由 3 名评审员评审。

项目应该或多或少地按顺序处理 - 理想情况下,项目 A 将被添加到系统中,审阅者 1,2 和 3 对其进行审阅并将其返回给用户。然后项目 B 被添加到系统中,审阅者 2、5、1 对其进行审阅,依此类推。当然,由于审稿人可以同时工作,而且审稿人超过3人,系统应该支持多个项目同时审稿(当然是由不同的审稿人)。

我不确定如何实现数据项存储库。要求是:

  • 项目由多个作者添加。
  • 每个项目由 3 个不同的读者阅读。
  • 当读者拿一个项目时,它应该先拿读者没有看到的第一个项目。

我可以使用 SQL 数据库来实现所有这些,但它不会很好地扩展。

是否有现成的排队系统支持这样的事情(基本上,弹出第一个不符合条件的项目)?或者以某种方式将其添加到现有的排队系统中?

4

1 回答 1

1

鉴于 SQL 数据库是许多企业级系统的基础,我认为“它不会很好地扩展”的说法是没有根据的。大型企业系统确实受益于专用排队系统,但这些系统正在处理例如零售银行一天内要处理的所有交易。我怀疑你可以有这么多要审查的项目和这么多的并发审阅者,以至于这个要求会给标准 SQL 数据库带来压力——6,000 名审阅者每小时处理 60 个项目只会提供几百个 tps。当然,我猜测您的需求规模,所以听到它们是什么可能会很有趣。

但是,我可以看到将其实现为一组队列的概念优点,然后是一个原则要求,即能够“给我这个队列中的下一个我尚未审查的项目”。

JMS 选择器允许您根据标题字段内容选择记录,因此将 Reviewer1 和 Reviewer2 标题字段添加到您的消息应该允许有效选择下一个可用项目。因此,我猜想任何兼容 JMS 的排队系统就足够了。

于 2013-02-26T07:54:26.490 回答