Fix redis setup (#11)
This commit is contained in:
parent
b49cc9fbb6
commit
1f817c637f
@ -59,7 +59,7 @@ class App(Base):
|
|||||||
self.middleware.append(HydrateMiddleware())
|
self.middleware.append(HydrateMiddleware())
|
||||||
|
|
||||||
# Set up the state manager.
|
# Set up the state manager.
|
||||||
self.state_manager.set(state=self.state)
|
self.state_manager.setup(state=self.state)
|
||||||
|
|
||||||
# Set up the API.
|
# Set up the API.
|
||||||
self.api = fastapi.FastAPI()
|
self.api = fastapi.FastAPI()
|
||||||
|
@ -451,9 +451,6 @@ class StateUpdate(Base):
|
|||||||
events: List[Event] = []
|
events: List[Event] = []
|
||||||
|
|
||||||
|
|
||||||
redis = None
|
|
||||||
|
|
||||||
|
|
||||||
class StateManager(Base):
|
class StateManager(Base):
|
||||||
"""A class to manage many client states."""
|
"""A class to manage many client states."""
|
||||||
|
|
||||||
@ -466,16 +463,13 @@ class StateManager(Base):
|
|||||||
# The token expiration time (s).
|
# The token expiration time (s).
|
||||||
token_expiration: int = constants.TOKEN_EXPIRATION
|
token_expiration: int = constants.TOKEN_EXPIRATION
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
# The redis client to use.
|
||||||
"""Initialize the state manager.
|
redis: Any = None
|
||||||
|
|
||||||
Args:
|
def setup(self, state: Type[State]):
|
||||||
*args: Args to pass to the base class.
|
"""Setup the state manager."""
|
||||||
**kwargs: Kwargs to pass to the base class.
|
self.state = state
|
||||||
"""
|
self.redis = utils.get_redis()
|
||||||
super().__init__(*args, **kwargs)
|
|
||||||
global redis
|
|
||||||
redis = utils.get_redis()
|
|
||||||
|
|
||||||
def get_state(self, token: str) -> State:
|
def get_state(self, token: str) -> State:
|
||||||
"""Get the state for a token.
|
"""Get the state for a token.
|
||||||
@ -486,8 +480,8 @@ class StateManager(Base):
|
|||||||
Returns:
|
Returns:
|
||||||
The state for the token.
|
The state for the token.
|
||||||
"""
|
"""
|
||||||
if redis is not None:
|
if self.redis is not None:
|
||||||
redis_state = redis.get(token)
|
redis_state = self.redis.get(token)
|
||||||
if redis_state is None:
|
if redis_state is None:
|
||||||
self.set_state(token, self.state())
|
self.set_state(token, self.state())
|
||||||
return self.get_state(token)
|
return self.get_state(token)
|
||||||
@ -504,6 +498,6 @@ class StateManager(Base):
|
|||||||
token: The token to set the state for.
|
token: The token to set the state for.
|
||||||
state: The state to set.
|
state: The state to set.
|
||||||
"""
|
"""
|
||||||
if redis is None:
|
if self.redis is None:
|
||||||
return
|
return
|
||||||
redis.set(token, pickle.dumps(state), ex=self.token_expiration)
|
self.redis.set(token, pickle.dumps(state), ex=self.token_expiration)
|
||||||
|
@ -860,12 +860,12 @@ def get_redis():
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
import redis
|
import redis
|
||||||
|
|
||||||
config = get_config()
|
|
||||||
if config.redis_url is None:
|
|
||||||
return None
|
|
||||||
redis_url, redis_port = config.redis_url.split(":")
|
|
||||||
print("Using redis at", config.redis_url)
|
|
||||||
return redis.Redis(host=redis_url, port=int(redis_port), db=0)
|
|
||||||
except:
|
except:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
config = get_config()
|
||||||
|
if config.redis_url is None:
|
||||||
|
return None
|
||||||
|
redis_url, redis_port = config.redis_url.split(":")
|
||||||
|
print("Using redis at", config.redis_url)
|
||||||
|
return redis.Redis(host=redis_url, port=int(redis_port), db=0)
|
||||||
|
Loading…
Reference in New Issue
Block a user