我正在構建一個允許用戶向其發佈消息的自定義CMS。消息很短,像推文一樣。在CMS上併發管理
問題是這些消息是由真正的版主來主持的。並且有多個主持人同時處理消息流。我擔心的是,如果這些主持人正在處理同樣的信息呢。這既低效又不一致。由於一個消息可以被一個主持人拒絕,然後由另一個主持人傳遞。
因此,我想建立某種機制,以便CMS可以將這些消息分發給不同版主並避免重複。 CMS期望在短時間內處理大量的信息。所以這個問題變得更加嚴重。
任何想法表示讚賞。乾杯。
我正在構建一個允許用戶向其發佈消息的自定義CMS。消息很短,像推文一樣。在CMS上併發管理
問題是這些消息是由真正的版主來主持的。並且有多個主持人同時處理消息流。我擔心的是,如果這些主持人正在處理同樣的信息呢。這既低效又不一致。由於一個消息可以被一個主持人拒絕,然後由另一個主持人傳遞。
因此,我想建立某種機制,以便CMS可以將這些消息分發給不同版主並避免重複。 CMS期望在短時間內處理大量的信息。所以這個問題變得更加嚴重。
任何想法表示讚賞。乾杯。
我會做這樣的:
缺點是你需要一個鎖定機制的中央隊列。如果你想避免甚至是鎖定我提出了兩種解決方案之一:
您可以在主持人之前讓主持人將消息從隊列中拉出。像退房一樣排序?所以主持人點擊一些分配給他們處理的消息的東西。他們處理這些問題,然後從隊列中取出另一批。
是的,如果他們被抓住,然後沒有主持,將項目放回隊列。 – 2010-08-21 10:56:09
讓你的更新動作的消息做
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或其他頁面。
偉大的思想家都認爲... – 2010-08-21 10:55:25
謝謝你的想法埃米爾。 – TuanCM 2010-08-21 12:07:18