Этап 3 из 18 · ≈ 10 ч

Очереди и фоновые задачи

Основа с Middle

Долгие операции вне HTTP-запроса — очереди задач, повторы, идемпотентность.

Индексация документов, пакетная обработка, генерация отчётов занимают минуты. Держать HTTP-запрос открытым столько нельзя: запрос ставят в очередь, отвечают «принято», а воркер выполняет задачу в фоне.

Что важно знать

  • Инструменты: Celery, arq, Dramatiq, RQ поверх Redis или RabbitMQ; для потоков событий — Kafka.
  • Повторы с экспоненциальной паузой и пределом; после исчерпания — очередь «мёртвых» задач.
  • Идемпотентность: повторная обработка не должна дублировать результат и счёт за модель.
  • Ограничение параллельности — под лимиты провайдера.
  • Статус задачи для клиента: опрос, вебхук или уведомление.

Критерии освоения

Middle ≈ 10 ч

  • Выносит долгую обработку (индексация, пакетные вызовы модели) в фоновую очередь
  • Делает обработчик идемпотентным и настраивает повторы с паузой
  • Сообщает клиенту статус долгой задачи (опрос или уведомление)

Практика. Перенести индексацию загруженных документов в фоновую очередь со статусом задачи, повторами при ошибках модели эмбеддингов и защитой от двойной обработки.

Senior ≈ 6 ч

  • Проектирует ограничение параллельности под лимиты провайдера модели
  • Выбирает между очередью задач и брокером сообщений с обоснованием

Практика. Спроектировать конвейер обработки 100 тысяч документов в сутки с лимитом провайдера 500 запросов в минуту, посчитать время и стоимость.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Что такое message broker и зачем он нужен?Junior

Брокер — посредник, который принимает сообщения от отправителей и доставляет получателям асинхронно: стороны не знают друг о друге и не обязаны работать одновременно.

Полный разбор
Что такое backpressure и как его реализовать?Middle

Backpressure — механизм, которым медленный потребитель заставляет источник замедлиться, вместо того чтобы копить работу без предела.

Полный разбор
Как правильно настраивать таймауты и повторы запросов?Middle

Таймаут у каждого сетевого вызова — по p99.9 зависимости, а не «по умолчанию». Повторы — только идемпотентных операций, с экспоненциальной отсрочкой и джиттером, ограниченным числом и бюджетом.

Полный разбор
Что вы выберете для очереди фоновых задач, а что для шины событий между сервисами — RabbitMQ или Kafka?Middle

Очередь задач — RabbitMQ (или SQS): подтверждение каждого сообщения, повторы, DLX, приоритеты, отложенная доставка, медленная задача не блокирует остальные. Шина событий — Kafka: хранение и перечитывание, много независимых потребителей, порядок по ключу…

Полный разбор
Чем модель pub/sub отличается от point-to-point (очередь)?Junior

Pub/sub — каждое сообщение получает каждый подписчик (рассылка события). Point-to-point (очередь) — каждое сообщение получает один из конкурирующих потребителей (распределение работы).

Полный разбор
Какие ошибки обработки сообщения имеет смысл повторять, а какие нет?Middle

Временные сбои (таймаут, недоступность зависимости, блокировка в базе, 503) — повторять с отсрочкой. Постоянные (невалидные данные, ошибка десериализации, нарушение бизнес-правила) — сразу в DLQ.

Полный разбор

← Вся карта «ИИ-инженер»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования