fix(redis): задать размер пула соединений явно
redis-py 8 поставил дефолт `max_connections=100`, а у нас на этом пуле висят не только команды, но и долгоживущие pub/sub-подписки комнаты — по одной на каждого участника, пока он в конференции. Сотый участник на воркер выгребал пул, и WS-хендшейк падал уже на `hgetall` очереди рук с `MaxConnectionsError`. Второй потолок того же рода, что и пул БД, только этажом ниже. Воспроизведён локально: при 99 одновременных WS вход переставал работать; с `redis_max_connections=500` те же 120 подключений проходят без единой ошибки. Соединения создаются по мере надобности, поэтому сам по себе поднятый лимит ничего не стоит.
This commit is contained in:
@@ -6,4 +6,11 @@ from core.config import get_settings
|
||||
|
||||
settings = get_settings()
|
||||
|
||||
redis_client: Redis = Redis.from_url(settings.redis_url, decode_responses=True)
|
||||
redis_client: Redis = Redis.from_url(
|
||||
settings.redis_url,
|
||||
decode_responses=True,
|
||||
# Размер пула задаём явно: дефолт redis-py (100) рассчитан на команды, а у
|
||||
# нас на нём же висят долгоживущие pub/sub-подписки комнаты — по одной на
|
||||
# участника (см. `core/config.py`, `redis_max_connections`).
|
||||
max_connections=settings.redis_max_connections,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user