Добавление к моему вопросу.Я добавил myBatisPagingItemReader (), как это было предложено для класса, аннотированного для конфигурации.
Перезапустите пример, когда я использую аннотацию @Stepscope для myBatisPagingItemReader (), программа чтения выбирает 5 записей, и у меня установлен размер чанка (commit-interval)3. 3. 1003 *
Экземпляр задания - 01 - Параметр задания - 01/02 / 2019.
чанк-1:
- запись процесса-1
- запись процесса-2
- запись процесса-3
Writer - запись всех 3 записей
успешная фиксация чанка-1
chunk-2: запись-процесса 4-запись процесса-5 - Работа и исключениязавершается и устанавливается в состояние «СБОЙ»
Теперь задание снова запускается с использованием того же параметра задания.
Экземпляр задания - 01 - Параметр задания - 01/02 / 2019.
chunk-1:
запись процесса-1
запись процесса-2
запись процесса-3
Writer - запись всех 3 записей
успешное принятие фрагмента-1
chunk-2:
запись процесса-4
запись процесса-5 - сбои и исключение
Job completes и установлен в состояние «FAILED»
Обратите внимание: здесь, когда я использую аннотацию @Stepscope для метода bean myBatisPagingItemReader (), задание создает новый экземпляр, см. ниже сообщение журнала.
Создание объекта в области действия = шаг, имя = scopedTarget.myBatisPagingItemReader
Зарегистрированный обратный вызов уничтожения в области действия = шаг, имя = scopedTarget.myBatisPagingItemReader
Поскольку это новый экземпляр, он запускает процесс с начала, а не с запуска скусок-2.
Если я не использую Stepscope, он перезапускается с чанка-2, когда устанавливается перезапущенный шаг задания - MyBatisPagingItemReader.read.count = 3.
Я хотел бы использовать Stepscope для использования поздних привязок, если я использую stepscope, возможно ли, чтобы мой myBatisPagingItemReader установил read.count после последнего сбоя, чтобы перезапустить работу?
или
Если я не использую @Stepscope, есть ли способ получить параметры задания внутри myBatisPagingItemReader?