FastApi
1from fastapi import APIRouter, BackgroundTasks, Depends2
3from auth.base_config import current_user4
5from .tasks import send_email_report_dashboard6
7router = APIRouter(prefix="/report")8
9
10@router.get("/dashboard")11def get_dashboard_report(background_tasks: BackgroundTasks, user=Depends(current_user)):12# 1400 ms - Клиент ждет13send_email_report_dashboard(user.username)14# 500 ms - Задача выполняется на фоне FastAPI в event loop'е или в другом треде15background_tasks.add_task(send_email_report_dashboard, user.username)16# 600 ms - Задача выполняется воркером Celery в отдельном процессе17send_email_report_dashboard.delay(user.username)18return {19"status": 200,20"data": "Письмо отправлено",21"details": None22}23