Spaces:
Paused
Paused
| from __future__ import annotations | |
| from redis.asyncio import Redis | |
| from app.configs.settings import Settings | |
| class RedisPool: | |
| def __init__(self, settings: Settings) -> None: | |
| self._settings = settings | |
| self._client: Redis | None = None | |
| async def connect(self) -> None: | |
| self._client = Redis.from_url(self._settings.redis.url, decode_responses=True) | |
| await self._client.ping() | |
| async def disconnect(self) -> None: | |
| if self._client is not None: | |
| await self._client.aclose() | |
| self._client = None | |
| def client(self) -> Redis: | |
| if self._client is None: | |
| msg = "Redis is not connected." | |
| raise RuntimeError(msg) | |
| return self._client | |