我們的網站有時會有大約 600 名經過身份驗證的用戶嘗試在 5 分鐘內注冊一個活動。我們有一個帶有 1 個 CPU 和 1GB 記憶體的 VPS。在這些時刻,網站會變慢并給出 502 錯誤。
出于這個原因,我將每個站點快取與FileBasedCache. 這很好用,壓力測驗也很好用。
但是,當人們登錄時,他們被重定向到他們的個人資料。這是代碼:
class UserRedirectView(LoginRequiredMixin, RedirectView):
permanent = False
def get_redirect_url(self):
return reverse("users:detail", kwargs={"membership_number": self.request.user.membership_number})
用戶被重定向到一個帶有其membership_number 的網址
class UserDetailView(LoginRequiredMixin, DetailView):
model = User
slug_field = "membership_number"
slug_url_kwarg = "membership_number"
一些用戶報告說,他們在登錄后被重定向到其他人的個人資料。
這是如何運作的?如何防止網站的用戶特定部分被快取?例如,用戶還會看到特定于他們所在組的事件串列。換句話說,每個用戶都應該看到不同的串列。
有任何想法嗎?最佳實踐?
uj5u.com熱心網友回復:
您應該能夠更改 cookie 上的快取,以便登錄用戶(假設基于 cookie 的身份驗證)獲得另一個快取鍵。
from django.views.decorators.vary import vary_on_cookie
@vary_on_cookie
def my_view(request):
pass
https://docs.djangoproject.com/en/dev/topics/cache/#controlling-cache-using-other-headers 和 https://docs.djangoproject.com/en/dev/topics/cache/#using-不同的標題
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/349997.html
