From 2c46e22d04013210a40d4d50625970148a6015b4 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Mon, 28 Jun 2021 18:31:12 +0200 Subject: [PATCH] add several page_cache with memcached --- app/settings.py | 14 ++++++++------ requirements.txt | 1 + teleforma/urls.py | 14 ++++++++++---- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/app/settings.py b/app/settings.py index d4b23dae..ab45e686 100644 --- a/app/settings.py +++ b/app/settings.py @@ -286,12 +286,14 @@ RECAPTCHA_PRIVATE_KEY = '6Ldq5DgbAAAAAOVDOeF2kH8i2e2VSNHpqlinbpAJ' RECAPTCHA_REQUIRED_SCORE = 0.85 # Cache backend is optional, but recommended to speed up user agent parsing -# CACHES = { -# 'default': { -# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', -# 'LOCATION': '127.0.0.1:11211', -# } -# } +CACHES = { + 'default': { + 'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache', + 'LOCATION': 'memcached:11211', + } +} + +CACHE_TIMEOUT = 300 # Name of cache backend to cache user agents. If it not specified default # cache alias will be used. Set to `None` to disable caching. diff --git a/requirements.txt b/requirements.txt index 0295153b..5e468f60 100644 --- a/requirements.txt +++ b/requirements.txt @@ -32,3 +32,4 @@ psycopg2==2.8.6 redis==3.5.3 uwsgi==2.0.19 daphne==3.0.2 +pymemcache==3.4.4 diff --git a/teleforma/urls.py b/teleforma/urls.py index f7074f93..d049e12d 100644 --- a/teleforma/urls.py +++ b/teleforma/urls.py @@ -45,6 +45,7 @@ from django.contrib.auth.views import (LoginView, LogoutView, PasswordResetDoneView, PasswordResetView) from django.views.generic.base import TemplateView +from django.views.decorators.cache import cache_page from jsonrpc import jsonrpc_site from teleforma.views.home import HomeView @@ -74,6 +75,9 @@ media = MediaView() home_view = HomeView() media_transcoded = MediaTranscodedView() +CACHE_TIMEOUT = getattr(settings, 'CACHE_TIMEOUT', 300) + + urlpatterns = [ # login / logout url(r'^login/$', LoginView.as_view(template_name='teleforma/login.html'), @@ -143,7 +147,7 @@ urlpatterns = [ url(r'^desk/$', HomeRedirectView.as_view(), name="teleforma-desk"), url(r'^desk/periods/(?P.*)/courses/$', - CourseListView.as_view(), name="teleforma-desk-period-list"), + cache_page(CACHE_TIMEOUT)(CourseListView.as_view()), name="teleforma-desk-period-list"), url(r'^desk/periods/(?P.*)/courses_pending/$', CoursePendingListView.as_view(), name="teleforma-desk-period-pending"), url(r'^desk/periods/(?P.*)/courses/(?P.*)/detail/$', CourseView.as_view(), @@ -180,10 +184,12 @@ urlpatterns = [ AnnalsCourseView.as_view(), name="teleforma-annals-course"), url(r'^desk/periods/(?P.*)/conferences/(?P.*)/video/$', - ConferenceView.as_view(), name="teleforma-conference-detail"), + cache_page(CACHE_TIMEOUT)(ConferenceView.as_view()), + name="teleforma-conference-detail"), url(r'^desk/periods/(?P.*)/conferences/(?P.*)/audio/$', - ConferenceView.as_view( - template_name="teleforma/course_conference_audio.html"), + cache_page(CACHE_TIMEOUT)ConferenceView.as_view( + template_name="teleforma/course_conference_audio.html") + ), name="teleforma-conference-audio"), url(r'^desk/periods/(?P.*)/conferences/list/$', ConferenceListView.as_view(), name="teleforma-conferences"), -- 2.39.5