Получить доступ

Что такое Spring Batch и из каких основных частей состоит batch job?

SeniorSpring Batch и IntegrationSpring
Ещё спрашивают так:
  • Как устроен batch job в Spring Batch?
Коротко

Spring Batch — фреймворк для пакетной обработки больших объёмов: Job состоит из Step, шаг обычно chunk-ориентированный — ItemReader → ItemProcessor → ItemWriter пачками с коммитом на каждую пачку.

  • JobRepository хранит состояние в базе — упавшее задание продолжается с места остановки
  • Пропуск (skip) и повтор (retry) ошибочных записей, листенеры
  • Масштабирование: многопоточный шаг, партиционирование, удалённые чанки

А ещё Tasklet — шаг из одного действия (удалить файлы, вызвать процедуру)

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

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

Модель:

  • Job — задание, последовательность шагов; JobInstance — запуск с конкретными параметрами (дата), JobExecution — попытка запуска;
  • Step — шаг: chunk-ориентированный или Tasklet;
  • chunk-шаг: ItemReader читает по одной записи, ItemProcessor преобразует или фильтрует, ItemWriter пишет пачку из N записей в одной транзакции;
  • JobRepository — таблицы в базе с состоянием выполнения: какой шаг, сколько прочитано, где остановились.

Надёжность: при падении задание перезапускается с теми же параметрами и продолжает с последнего закоммиченного чанка (если reader умеет сохранять позицию). faultTolerant().skip(...).skipLimit(100).retry(...) — пропуск плохих записей и повтор временных ошибок.

Готовые компоненты: читатели и писатели для файлов (CSV, XML, JSON), JDBC (курсор, постраничное чтение), JPA, Kafka, MongoDB.

Масштабирование: несколько потоков на шаг, партиционирование данных по диапазонам между исполнителями, удалённые чанки через брокер.

Spring Batch 5 (Boot 3): @EnableBatchProcessing больше не нужен в Boot, JobBuilder и StepBuilder вместо фабрик.

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

  • Job, Step, chunk: reader, processor, writer.
  • JobRepository и перезапуск.
  • Skip и retry, масштабирование.

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

  • Писать пакетную обработку одной огромной транзакцией.

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

  • Что такое chunk-oriented processing?
  • Где хранится состояние batch job?

Разбор темы

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

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем