From 9a692d475bb8638018545e8557267cc9486a7dcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Fri, 15 Sep 2017 17:46:20 +0200 Subject: [PATCH] Cache the entire homepage for 5 minutes. This means that comments and blog posts will take at most 5 minutes to show up on /. --- cloud/__init__.py | 3 +++ cloud/routes.py | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/cloud/__init__.py b/cloud/__init__.py index daa64dd..b9ff11d 100644 --- a/cloud/__init__.py +++ b/cloud/__init__.py @@ -87,6 +87,9 @@ class CloudExtension(PillarExtension): signal_user_changed_role.connect(self._user_changed_role) + from . import routes + routes.setup_app(app) + def _user_changed_role(self, sender, user: dict): from pillar.api import service diff --git a/cloud/routes.py b/cloud/routes.py index a91e72d..1e27aee 100644 --- a/cloud/routes.py +++ b/cloud/routes.py @@ -28,6 +28,10 @@ def homepage(): if current_user.is_anonymous: return redirect(url_for('cloud.welcome')) + return _render_homepage() + + +def _render_homepage(): # Get latest blog posts api = system_util.pillar_api() latest_posts = Node.all({ @@ -319,3 +323,10 @@ def billing(): return render_template( 'users/settings/billing.html', store_user=store_user, groups=groups, title='billing') + + +def setup_app(app): + global _render_homepage + + cache = app.cache.cached(300) + _render_homepage = cache(_render_homepage)