10 / 25 · §6

Фоновые задачи и очереди

Пользователь не должен ждать HTTP 4 минуты. Тяжёлое — в очередь.

Схема: Фоновые задачи и очереди
Нажми на схему, чтобы открыть в полном размере.

Главное

  • API быстро принимает запрос, кладёт задачу в очередь и сразу отвечает «Processing started».
  • Worker забирает задачу и делает работу асинхронно: видео, e-mail, картинки, отчёты.
  • Получаем лучший UX, масштабируемость и надёжность: воркеры добавляются независимо, задачи ретраятся.
  • Инструменты: RabbitMQ, SQS, Redis queues, BullMQ, Celery, Sidekiq.

Загрузка видео

Upload → API (202 Accepted) → Queue → Video Worker → S3
                                  ↳ уведомление по готовности

Kafka не обязательна

Kafka может участвовать, но для каждой background job она не нужна. Ретраи и идемпотентность задач нужны всегда.