Весенняя партия Рабочие вопросы - PullRequest
0 голосов
/ 28 апреля 2019

Весеннее пакетное задание читает большой CV-файл, читает записи и отправляет сообщение третьему лицу в restful API.Во время выполнения заданий возникла какая-то проблема в середине файла, и отказ от задания. Есть ли способ запустить задание там, где оно осталось, и обработать оставшиеся записи вместо того, чтобы начинать с нуля?

Мне нужны предложения.Есть ли способ избежать такого поведения вместо повторной обработки файла?

1 Ответ

1 голос
/ 28 апреля 2019

Да, вы можете перезапустить сбойное задание с того места, где оно провалилось.Именно здесь Spring Batch может вам помочь.

Но есть дизайн, который вам нужно сделать заранее:

  • использовать как можно больше ItemReader / ItemProcessor / ItemWriter.Если у вас есть массовые шаги, вам нужно написать свою собственную перезапускаемую логику.
  • Позаботьтесь о параметрах вашей работы.По умолчанию они уникальны - поэтому они являются своего рода Primary key для вашей работы.Это позволяет вам запускать задание с теми же параметрами - он будет перезапущен с последнего неудачного шага.
  • Spring batch сохраняет счетчики для строк и метаданных шага в базе данных, поэтому вы хотите, чтобы ваша база данных была постоянной.
  • и т. Д.

Здесь есть много объяснений, поэтому, пожалуйста, прочитайте официальную документацию: https://docs.spring.io/spring-batch/trunk/reference/html/configureJob.html#restartability

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...