Долгие операции (>30 секунд) нельзя держать в HTTP соединении. Паттерны: 1) Async job: POST /tasks → 202 Accepted + taskId. Worker обрабатывает. GET /tasks/:id — статус. Webhook когда готово. 2) SSE: клиент подписывается, сервер стримит прогресс. 3) WebSocket: bidirectional для прогресса и управления. Реализация: BullMQ job + Redis для статуса. job.on("progress", percent => redis.set(taskId, percent)). GET /tasks/:id читает из Redis. При serverless (Lambda): Step Functions для оркестрации долгих workflows.
Как организовать обработку долгих операций в Node.js API?
Senior
261 просмотровAFK Offer AI
Как логировать HTTP запросы в Express?