backend optimizations + redundant commits cleanup

This commit is contained in:
Vladless
2026-04-19 22:53:14 +00:00
parent ed30a21842
commit bfd628b24e
67 changed files with 1157 additions and 1137 deletions
Binary file not shown.
+23
View File
@@ -1,6 +1,7 @@
import asyncio
from apscheduler.triggers.cron import CronTrigger
from apscheduler.triggers.interval import IntervalTrigger
from database import async_session_maker, cancel_expired_pending_payments
from logger import logger
@@ -65,7 +66,29 @@ def cleanup_expired_gifts_process_runner() -> None:
asyncio.run(cleanup_expired_gifts_job())
async def log_db_pool_status() -> None:
"""Раз в минуту логирует состояние пула соединений: даёт видимость «упираемся ли в лимит»."""
try:
from database.db import engine
pool = engine.pool
size = pool.size()
checked_out = pool.checkedout()
checked_in = getattr(pool, "checkedin", lambda: size - checked_out)()
overflow = getattr(pool, "overflow", lambda: -1)()
logger.info(
"[DBPool] size={} in_use={} idle={} overflow={}",
size,
checked_out,
checked_in,
overflow,
)
except Exception as error:
logger.debug("[DBPool] не удалось получить статус пула: {}", error)
AUDIT_DRAIN_TRIGGER = CronTrigger(hour=0, minute=0, timezone="Europe/Moscow")
DAILY_STATS_REPORT_TRIGGER = CronTrigger(hour=0, minute=1, timezone="Europe/Moscow")
STALE_PAYMENTS_SWEEP_TRIGGER = CronTrigger(minute=0, timezone="Europe/Moscow")
EXPIRED_GIFTS_CLEANUP_TRIGGER = CronTrigger(hour=3, minute=0, timezone="Europe/Moscow")
DB_POOL_STATUS_TRIGGER = IntervalTrigger(minutes=1)
+8
View File
@@ -1,10 +1,12 @@
from core.tasks.cron_tasks import (
AUDIT_DRAIN_TRIGGER,
DAILY_STATS_REPORT_TRIGGER,
DB_POOL_STATUS_TRIGGER,
EXPIRED_GIFTS_CLEANUP_TRIGGER,
STALE_PAYMENTS_SWEEP_TRIGGER,
cleanup_expired_gifts_job,
cleanup_expired_gifts_process_runner,
log_db_pool_status,
scheduled_audit_drain,
scheduled_audit_drain_process_runner,
scheduled_stats_report,
@@ -110,4 +112,10 @@ def register_periodic_tasks() -> None:
EXPIRED_GIFTS_CLEANUP_TRIGGER,
)
periodic_task_manager.register_cron_task(
"db_pool_status",
log_db_pool_status,
DB_POOL_STATUS_TRIGGER,
)
_TASKS_REGISTERED = True