From 3cbf13cce3e43da97efd6dada0af64285ed19998 Mon Sep 17 00:00:00 2001 From: Jochen Kupperschmidt Date: Sat, 20 Feb 2021 16:53:58 +0100 Subject: [PATCH] Simplify Redis client integration --- byceps/application.py | 6 +++--- byceps/redis.py | 41 ----------------------------------------- byceps/util/jobqueue.py | 4 +--- 3 files changed, 4 insertions(+), 47 deletions(-) delete mode 100644 byceps/redis.py diff --git a/byceps/application.py b/byceps/application.py index acf3ef0c67..2aabeee6d1 100644 --- a/byceps/application.py +++ b/byceps/application.py @@ -15,12 +15,12 @@ from flask import current_app, Flask, g, redirect from flask_babel import Babel import jinja2 +from redis import StrictRedis from .blueprints.blueprints import register_blueprints from . import config, config_defaults from .database import db from . import email -from .redis import redis from .util.l10n import set_locale from .util import templatefilters from .util.templating import SiteTemplateOverridesLoader @@ -61,8 +61,8 @@ def create_app( # Initialize database. db.init_app(app) - # Initialize Redis connection. - redis.init_app(app) + # Initialize Redis client. + app.redis_client = StrictRedis.from_url(app.config['REDIS_URL']) email.init_app(app) diff --git a/byceps/redis.py b/byceps/redis.py deleted file mode 100644 index 9310f493ed..0000000000 --- a/byceps/redis.py +++ /dev/null @@ -1,41 +0,0 @@ -""" -byceps.redis -~~~~~~~~~~~~ - -Redis_ integration. - -.. _Redis: https://redis.io/ - -:Copyright: 2006-2021 Jochen Kupperschmidt -:License: Revised BSD (see `LICENSE` file for details) -""" - -from flask import _app_ctx_stack as stack -from redis import StrictRedis - - -EXTENSION_KEY = 'byceps_redis' - -CONTEXT_ATTRIBUTE_NAME = 'redis_client' - - -class Redis: - - def init_app(self, app): - url = app.config['REDIS_URL'] - self._client = StrictRedis.from_url(url) - - app.extensions[EXTENSION_KEY] = self - - @property - def client(self): - ctx = stack.top - - if ctx is not None: - if not hasattr(ctx, CONTEXT_ATTRIBUTE_NAME): - setattr(ctx, CONTEXT_ATTRIBUTE_NAME, self._client) - - return getattr(ctx, CONTEXT_ATTRIBUTE_NAME) - - -redis = Redis() diff --git a/byceps/util/jobqueue.py b/byceps/util/jobqueue.py index 20076e6740..9f4bbdcacf 100644 --- a/byceps/util/jobqueue.py +++ b/byceps/util/jobqueue.py @@ -18,12 +18,10 @@ from flask import current_app from rq import Connection, Queue -from byceps.redis import redis - @contextmanager def connection(): - with Connection(redis.client): + with Connection(current_app.redis_client): yield