Ruby on rails CMS的并发调节
我正在建立一个自定义的CMS,允许用户发布消息到它。信息很短,就像推特一样 问题是,这些消息是由真正的主持人主持的。并且有多个版主同时处理消息流。我担心的是,如果这些主持人正在处理同一条消息会怎么样。这既低效又不一致。因为一条消息可以被一个版主拒绝,然后被另一个版主传递 因此,我想建立某种机制,以便CMS可以将这些消息分发给不同的主持人,并避免重复。CMS希望在短时间内处理大量信息。因此,这个问题变得更加严重Ruby on rails CMS的并发调节,ruby-on-rails,web-applications,concurrency,content-management-system,Ruby On Rails,Web Applications,Concurrency,Content Management System,我正在建立一个自定义的CMS,允许用户发布消息到它。信息很短,就像推特一样 问题是,这些消息是由真正的主持人主持的。并且有多个版主同时处理消息流。我担心的是,如果这些主持人正在处理同一条消息会怎么样。这既低效又不一致。因为一条消息可以被一个版主拒绝,然后被另一个版主传递 因此,我想建立某种机制,以便CMS可以将这些消息分发给不同的主持人,并避免重复。CMS希望在短时间内处理大量信息。因此,这个问题变得更加严重 任何想法都值得赞赏。干杯。我会这样做: 每个登录的主持人都会获得自己的消息队列以进行
任何想法都值得赞赏。干杯。我会这样做:
- 每个登录的主持人都会获得自己的消息队列以进行主持
- 有一个中心队列将用作缓冲区
- 已发布的消息进入中央队列
- 每个版主队列一次获取10条消息
- 当主持人队列中只剩下5条消息时,该队列将自动获取10条新消息
您可以让版主在版主之前将消息从队列中删除。有点像退房?所以主持人点击一些东西,给他们分配一些要处理的消息。他们处理这些问题,然后从队列中再抓取一批 让您的消息更新操作执行此操作
def update
# perform regular update stuff ;)
rescue ActiveRecord::StaleObjectError
flash[:message] = "Someone else has updated this message"
redirect_to message_path(@message)
end
查看Rails中关于“锁定”(乐观或其他)的页面。Yep,如果项目被抓取,然后没有被调节,则将其放回队列中。Heh误读了实际问题,我的建议防止了调节冲突,无法为您解决工作分配问题,抱歉!)谢谢Keeran,非常有用的资源。我一定会用的。