feat: add foreign key constraints and metrics for blockchain node

This commit is contained in:
oib
2025-09-28 06:04:30 +02:00
parent fe29631a86
commit b8b640666d
188 changed files with 15678 additions and 158 deletions

View File

@@ -0,0 +1,39 @@
from __future__ import annotations
from collections.abc import AsyncGenerator
import redis.asyncio as redis
from .settings import settings
_redis_client: redis.Redis | None = None
def create_redis() -> redis.Redis:
global _redis_client
if _redis_client is None:
_redis_client = redis.from_url(
settings.redis_url,
max_connections=settings.redis_max_connections,
encoding="utf-8",
decode_responses=True,
)
return _redis_client
def get_redis_client() -> redis.Redis:
if _redis_client is None:
return create_redis()
return _redis_client
async def get_redis() -> AsyncGenerator[redis.Redis, None]:
client = get_redis_client()
yield client
async def close_redis() -> None:
global _redis_client
if _redis_client is not None:
await _redis_client.close()
_redis_client = None