我正在构建一个自定义CMS,允许用户向其发布消息。消息很短,就像推文一样。
问题是这些消息是由真正的主持人主持的。并且有多个主持人同时处理消息流。我担心的是,如果这些主持人正在处理相同的消息。这既低效又不一致。由于一个主持人可以拒绝一条消息,然后另一条消息传递。
因此,我想构建某种机制,以便CMS可以将这些消息分发给不同的主持人并避免重复。 CMS期望在短时间内处理大量消息。因此这个问题变得更加严重。
任何想法都表示赞赏。欢呼声。
答案 0 :(得分:1)
我会这样做:
缺点是你需要一个带锁定机制的中央队列。如果你想避免这种锁定,我建议采用以下两种解决方案之一:
答案 1 :(得分:0)
您可以让主持人在审核之前将消息从队列中拉出来。有点像退房吗?因此,主持人点击了一些内容,为他们分配了许多要处理的消息。他们处理那些,然后从队列中抓取另一批。
答案 2 :(得分:0)
对“消息执行此操作”进行更新操作
def update
# perform regular update stuff ;)
rescue ActiveRecord::StaleObjectError
flash[:message] = "Someone else has updated this message"
redirect_to message_path(@message)
end
在Rails中查看http://railscasts.com/episodes/59-optimistic-locking或其他关于'锁定'(乐观或其他)的页面。