Skip to content

P3: добавить @retry_on_busy() к прямым commit в роутерах #479

@shikhalev

Description

@shikhalev

Незащищённые прямые commit в роутерах

Follow-up из #460 (пункт 5). Все менеджеры в db/integration.py защищены @retry_on_busy() (#465), но ~35 прямых AsyncSessionLocal() + commit() в роутерах — нет.

Почему не критично

busy_timeout=5000 (#462) даёт 5 секунд ожидания на уровне SQLite. @retry_on_busy() — дополнительная страховка поверх (на случай если 5 сек не хватит). Все перечисленные эндпоинты — админские CRUD с низкой конкурентностью.

Затронутые файлы

Файл Commits Описание
app/routers/bot_sales.py 24 CRUD промптов, квизов, сегментов, follow-up, testimonials, subscribers
app/routers/legal.py 4 Consent grant/revoke
app/routers/usage.py 4 Usage logging, cleanup, limits
app/routers/llm.py 2 LLM preset CRUD
app/routers/audit.py 1 Audit cleanup
orchestrator.py 3 Widget visitor_metadata, amoCRM contact/lead save

Варианты решения

A. Вынести в менеджеры (предпочтительно) — создать AsyncBotSalesManager, AsyncConsentManager, AsyncUsageManager в db/integration.py по аналогии с существующими, применить @retry_on_busy().

B. Обернуть inline — декорировать отдельные helper-функции прямо в роутерах (быстрее, но менее чисто).

Связано с

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low priority / Backlog

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions