Вопрос с собеседования · Spring

Для чего предназначен Spring Batch?

JuniorSpring Batch и IntegrationSpring
Ещё спрашивают так:
  • Для каких задач Spring Batch?
Коротко

Пакетная обработка больших объёмов: импорт и выгрузка файлов, перерасчёты, рассылки — чтение, преобразование и запись порциями с сохранением прогресса и перезапуском с места сбоя.

  • Job из Step, шаг — reader, processor, writer
  • Состояние в JobRepository
  • Пропуск и повтор ошибочных записей

А ещё Не для потоковой обработки в реальном времени

Подробно

Ценность не в самом цикле по данным — его несложно написать руками, — а в том, что сопутствует: метаданные о выполнении сохраняются, поэтому упавшая работа перезапускается не с начала, а с последней успешной порции. К этому добавляются пропуск сбойных записей, повторы, параллельное выполнение шагов и учёт статистики. Обработка порциями заодно ограничивает потребление памяти и длительность транзакции.

Что хотят услышать

  • Назначение и основные понятия.

Частые ошибки

  • Писать пакетную обработку циклом без сохранения прогресса.
  • Обрабатывать весь объём одной транзакцией.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Для обработки больших объёмов данных с перезапуском с места сбоя
  • ✗Для обработки HTTP-запросов пачками, чтобы снизить нагрузку на веб-сервер
  • ✗Для параллельного выполнения любых фоновых задач в общем пуле потоков
  • ✗Для отправки сообщений в брокер группами, чтобы повысить пропускную способность

Что спросят дальше

  • Как выбирается размер порции?
  • Что хранится в репозитории заданий?

Разбор темы

Связанные вопросы

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

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

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

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