我知道這是一個有點特定於應用程序的問題,但我想看看是否有人有我沒有想過的聰明解決方案。這是一個艱難的任務,所以任何人都可以優雅地解決這個問題的重點(和道具)。處理任務計數,同時保持性能
我有一個包含任務數全球導航on Rails應用程序紅寶石(見下圖)
的問題是,產生這些計數需要一些激烈的查詢。因爲它的全球性,它在每一頁。他們還需要在人們處理任務時進行更新。這使得它特別具有挑戰性。
這就是說,現在我通過memcached將導航HTML緩存10分鐘。如果有人照顧一項任務,噢。導航每10分鐘更新一次。我知道,可怕的解決方案,但這是我的停止差距措施,直到我提出一個適當的解決方案。我想避免在應用程序中添加一堆鉤子(例如:處理傳遞,會觸發一個鉤子以減少每個相關用戶的計數)。請記住,這些計數涉及系統中的許多實體,邏輯有點複雜。它涉及訪問(每個用戶根據權限系統有不同的計數),並且在某些情況下確定這些計數可能很複雜。掛鉤會很快變得雜亂,並且生成這些計數的邏輯將被複制。
任何幫助將不勝感激。
偉大的問題。您對導航HTML所做的事情是緩存,那麼爲什麼不將相同的緩存概念應用於將值存儲在「計數」表中?畢竟,在某個時候某些鉤子減少了一個計數,所以減少了表中的計數。這也應該有一些設計模式(希望)。 – Zabba