Для чего предназначен Spring Batch?
- Для каких задач Spring Batch?
Пакетная обработка больших объёмов: импорт и выгрузка файлов, перерасчёты, рассылки — чтение, преобразование и запись порциями с сохранением прогресса и перезапуском с места сбоя.
- Job из Step, шаг — reader, processor, writer
- Состояние в JobRepository
- Пропуск и повтор ошибочных записей
А ещё Не для потоковой обработки в реальном времени
Подробно
Ценность не в самом цикле по данным — его несложно написать руками, — а в том, что сопутствует: метаданные о выполнении сохраняются, поэтому упавшая работа перезапускается не с начала, а с последней успешной порции. К этому добавляются пропуск сбойных записей, повторы, параллельное выполнение шагов и учёт статистики. Обработка порциями заодно ограничивает потребление памяти и длительность транзакции.
Что хотят услышать
- Назначение и основные понятия.
Частые ошибки
- Писать пакетную обработку циклом без сохранения прогресса.
- Обрабатывать весь объём одной транзакцией.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Для обработки больших объёмов данных с перезапуском с места сбоя
- ✗Для обработки HTTP-запросов пачками, чтобы снизить нагрузку на веб-сервер
- ✗Для параллельного выполнения любых фоновых задач в общем пуле потоков
- ✗Для отправки сообщений в брокер группами, чтобы повысить пропускную способность
Что спросят дальше
- Как выбирается размер порции?
- Что хранится в репозитории заданий?
Разбор темы
- Spring Batch, Integration и API styles
Batch jobs, enterprise integration patterns, Spring Data REST, HATEOAS и GraphQL.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.