Клиент — маркетплейс отчётности для продавцов. Export «все заказы за год» занимал 3–8 минут — HTTP timeout, пользователи жали F5 и создавали дубли. Нужна система фоновых job с отслеживанием статуса.
Задача: API создаёт job → Celery worker выполняет (export CSV, генерация PDF, sync с API маркетплace) → статус и download link в PostgreSQL. Polling или webhook по готовности.
Реализация:
• POST /jobs {type, params} → job_id;
• Celery + Redis broker; tasks: export_orders, generate_report, sync_inventory;
• job states: queued / running / success / failed; progress 0–100 для long tasks;
• GET /jobs/{id} — status, result_url (S3 presigned), error message;
• retry policy, max runtime, cancel endpoint;
• Flower или custom dashboard для ops;
• cleanup old exports cron.
Стек: Python, FastAPI, Celery, Redis, PostgreSQL, S3, Docker, K8s optional. Приёмка: export 100K rows без timeout, resume after worker restart.
Итог: тяжёлые операции без блокировки UI; жалобы на «зависло» −95%. NDA: продукт не публикуется.