Прочитав много о перезапуске в Spring Batch, я узнал, что:
- SB может перезапустить шаг с самого начала, когда задание не удалось. Пример: Задание 1 -> шаг 1, шаг 2, шаг 3 (НЕУДАЧА) -> затем можно перезапустить с шага 3.
Я хотел бы другое поведение, но я не нашел решения, которое мне подходит.
У меня есть работа с одним шагом. Этот шаг читает текстовый файл (может иметь много строк). Я хочу защитить нашу систему на случай непредвиденного завершения (например, внезапное отключение нашего сервера). В этом случае, если мы прочитали X строк, я хочу восстановить задание с X + 1 строк до конца.
¿Можно ли этого достичь?
Заранее спасибо.
There is any way to restart without manipulate status in database?
: Нет, Spring Batch просматривает состояние репозитория заданий перед запуском/перезапуском любого задания, и если он находит выполнение задания какSTARTED
, он будет думать, что выполняется выполнение (хотя его нет). Ручной процесс описан здесь: stackoverflow.com/a/66211982/5019386. Если вы хотите автоматизировать это, вам нужно написать собственный код, который обнаруживает, что задание было внезапно уничтожено (я действительно не понимаю, как это возможно), и обновляет репозиторий заданий с помощью показанных запросов sql. - person Mahmoud Ben Hassine   schedule 25.02.2021