From 54465725afca0966366652e5b0471bc60d6e18ea Mon Sep 17 00:00:00 2001 From: dsc Date: Tue, 9 Jun 2020 05:16:37 +0200 Subject: [PATCH] Cache daemon communication up to 60 seconds --- funding/bin/utils.py | 4 ++-- funding/factory.py | 3 +++ funding/orm/orm.py | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/funding/bin/utils.py b/funding/bin/utils.py index 4caf0b4..e0b6bb4 100644 --- a/funding/bin/utils.py +++ b/funding/bin/utils.py @@ -19,7 +19,7 @@ def json_encoder(obj): class Summary: @staticmethod - @cache.cached(timeout=300, key_prefix="fetch_prices") + @cache.cached(timeout=600, key_prefix="fetch_prices") def fetch_prices(): return { 'coin-btc': coin_btc_value(), @@ -27,7 +27,7 @@ class Summary: } @staticmethod - @cache.cached(timeout=300, key_prefix="funding_stats") + @cache.cached(timeout=600, key_prefix="funding_stats") def fetch_stats(): from funding.factory import db from funding.orm.orm import Proposal, User, Comment diff --git a/funding/factory.py b/funding/factory.py index 6387699..c3be4d2 100644 --- a/funding/factory.py +++ b/funding/factory.py @@ -4,6 +4,7 @@ from flask import Flask from flask_caching import Cache from flask_session import Session from flask_sqlalchemy import SQLAlchemy +from werkzeug.middleware.proxy_fix import ProxyFix import redis app = None @@ -69,6 +70,8 @@ def create_app(): app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 30 app.secret_key = settings.SECRET + app.wsgi_app = ProxyFix(app.wsgi_app, x_proto=1, x_host=1) + _setup_cache(app) _setup_session(app) _setup_db(app) diff --git a/funding/orm/orm.py b/funding/orm/orm.py index 86ec16e..b36e491 100644 --- a/funding/orm/orm.py +++ b/funding/orm/orm.py @@ -11,7 +11,7 @@ from sqlalchemy.types import Float from sqlalchemy_json import MutableJson import settings -from funding.factory import db +from funding.factory import db, cache base = declarative_base(name="Model") @@ -191,6 +191,7 @@ class Proposal(db.Model): return {"amount": amount, "pct": pct} @property + @cache.cached(timeout=60, key_prefix="fetch_prices") def balance(self): """This property retrieves the current funding status of this proposal. It uses Redis cache to not spam the