mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-21 07:51:13 -05:00
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from flask.ext.redis import FlaskRedis
|
|
from flask import current_app
|
|
|
|
|
|
class RedisClient:
|
|
redis_store = FlaskRedis()
|
|
active = False
|
|
|
|
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, ex=None, px=None, nx=False, xx=False, raise_exception=False):
|
|
if self.active:
|
|
try:
|
|
self.redis_store.set(key, value, ex, px, nx, xx)
|
|
except Exception as e:
|
|
current_app.logger.exception(e)
|
|
if raise_exception:
|
|
raise e
|
|
|
|
def incr(self, key, raise_exception=False):
|
|
if self.active:
|
|
try:
|
|
return self.redis_store.incr(key)
|
|
except Exception as e:
|
|
current_app.logger.exception(e)
|
|
if raise_exception:
|
|
raise e
|
|
|
|
def get(self, key, raise_exception=False):
|
|
if self.active:
|
|
try:
|
|
return self.redis_store.get(key)
|
|
except Exception as e:
|
|
current_app.logger.exception(e)
|
|
if raise_exception:
|
|
raise e
|
|
return None
|