我有一個站點下的一個Django應用程序,我想實施站點範圍緩存。但它被證明是一個真正的麻煩。Django - 多站點站點緩存
發生什麼事是settings.CACHE_MIDDLEWARE_KEY_PREFIX
在啓動時設置一次,我不能繼續並根據當前網站的情況進行更改。因此,如果一頁url http://website1.com/abc/
被高速緩存,則http://website2.com/abc/
會呈現http://website1.com/abc/
的高速緩存版本。這兩個網站都運行在同一個Django實例上,因爲這正是Django網站允許我們做的事情。
這是不正確的做法?因爲我無法在運行時動態設置CACHE_MIDDLEWARE_KEY_PREFIX
,所以我無法使用Django的全站高速緩存來緩存多個站點。我也無法爲模板和視圖緩存執行此操作。
我得到的印象是,真正需要設置的方式是,每個站點都需要自己的Django實例,除了設置文件外,它們幾乎完全相同,在我的情況下,它只會與CACHE_MIDDLEWARE_KEY_PREFIX
的值不同。這些Django實例都讀取和寫入同一個數據庫。這涉及到我,因爲它可能會產生一些新問題。
我會走向正確的軌道還是我誤解了多站點架構如何工作?我檢查了Django文檔,並沒有真正提到如何爲服務多個站點的Django應用程序處理緩存(這不是低級緩存)。
你找到一個解決方案是什麼? – 2012-09-24 14:52:09