Refactored the initialisation of the redis client to follow the model used in the StatsdClient.

Basically wrapped the client so we can enable/disable, exception handle and so on.
This commit is contained in:
Martyn Inglis
2016-11-10 11:50:49 +00:00
parent eb94fe6c0a
commit aabda3f83e
4 changed files with 26 additions and 3 deletions

View File

@@ -4,7 +4,6 @@ import os
from flask import request, url_for, g, jsonify
from flask import Flask, _request_ctx_stack
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.redis import FlaskRedis
from flask_marshmallow import Marshmallow
from monotonic import monotonic
from werkzeug.local import LocalProxy
@@ -16,6 +15,7 @@ from app.clients.sms.firetext import FiretextClient
from app.clients.sms.loadtesting import LoadtestingClient
from app.clients.email.aws_ses import AwsSesClient
from app.clients.statsd.statsd_client import StatsdClient
from app.clients.redis.redis_client import RedisClient
from app.encryption import Encryption
@@ -31,7 +31,7 @@ mmg_client = MMGClient()
aws_ses_client = AwsSesClient()
encryption = Encryption()
statsd_client = StatsdClient()
redis_store = FlaskRedis()
redis_store = RedisClient()
clients = Clients()

View File

@@ -0,0 +1,20 @@
from flask.ext.redis import FlaskRedis
class RedisClient:
active = False
redis_store = FlaskRedis()
def init_app(self, app):
self.active = app.config.get('REDIS_ENABLED')
if self.active:
self.redis_store.init_app(app)
def set(self, key, value):
if self.active:
self.redis_store.set(key, value)
def get(self, key):
if self.active:
self.redis_store.get(key)

View File

@@ -36,6 +36,7 @@ from app.schemas import (
)
from app.service.utils import service_allowed_to_send_to
from app.utils import pagination_links
from app import redis_store
notifications = Blueprint('notifications', __name__)
@@ -205,6 +206,8 @@ def get_notification_statistics_for_day():
@notifications.route('/notifications/<string:notification_type>', methods=['POST'])
def send_notification(notification_type):
redis_store.set('key1', 'value')
if notification_type not in ['sms', 'email']:
assert False

View File

@@ -132,7 +132,7 @@ class Config(object):
STATSD_HOST = "statsd.hostedgraphite.com"
STATSD_PORT = 8125
REDIS_ENABLED = True
REDIS_ENABLED = False
REDIS_URL = "redis://localhost:6379/0"
SENDING_NOTIFICATIONS_TIMEOUT_PERIOD = 259200