Если у меня есть простое пакетное задание JEE с шагом, который может обрабатывать данные параллельно.
Я хочу читать данные из разных источников и, поскольку они независимы, это можно сделать одновременно в нескольких потоках.
Шаг:
<step id="step1">
<chunk checkpoint-policy="item" item-count="15">
<reader ref="MyReader">
<properties>
<!-- some properties -->
</properties>
</reader>
<processor ref="MyProcessor"></processor>
<writer ref="MyWriter"></writer>
</chunk>
<partition>
<mapper ref="MyPartitionMapper"/>
</partition>
</step>
И скажем, мой reader
использует checkpoint
, потому что в случае ошибки я хочу перезапустить раздел и обработать только данные, которые еще не были прочитаны и обработаны.
Вопрос:
Если у меня есть такой сценарий (несколько источников данных, чтение параллельно), могу ли я перезапустить задание или раздел в случае ошибки с сохранением контрольной точки для этого конкретного раздела?
Другими словами, даже если мне придется перезапустить задание, у меня будет сохраняться отдельная контрольная точка для каждого раздела, поэтому для каждого источника данных я читаю только новые данные (еще не обработанные)?