backend optimizations + redundant commits cleanup
This commit is contained in:
Binary file not shown.
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user