Я использую Spring Batch 3.0.3, сконфигурированный с аннотацией для создания пакетного задания, которое повторяет шаг неопределенным количеством раз.Повторение шага x раз в Spring Batch
Мой первый шаг будет считывать в память список элементов, используемых во время повторяющегося шага. Я бы хотел, чтобы повторяющиеся шаги повторялись в этом списке вакансий.
Как настроить мою работу для выполнения одного и того же шага x раз? Я видел примеры в xml шага, указав следующий шаг для запуска. Я думаю, я мог бы указать два шага друг к другу в бесконечном цикле, пока список не будет повторен. Будет ли это работать и есть ли способ сделать это с аннотациями? Ниже приведен мой основной файл конфигурации с некоторым кодом, который не работал.
@ComponentScan(excludeFilters = @Filter(IgnoreDuringScan.class))
@EnableAutoConfiguration
@EnableBatchProcessing
@Loggable
public class BatchCrudConfiguration
{
@Bean
public Job batchCRUDJob(JobBuilderFactory jobBuilderFactory, Step[] processSheetSteps)
{
JobBuilder jobBuilder = jobBuilderFactory.get("batchCRUDJob").incrementer(new RunIdIncrementer());
FlowBuilder<FlowJobBuilder> jobFlowBuilder = jobBuilder.flow(processSheetSteps[0]);
for (int i = 1; i < processSheetSteps.length; i++)
{
jobFlowBuilder = jobFlowBuilder.next(processSheetSteps[i]);
}
return jobFlowBuilder.end().build();
}
@Bean
public Step[] processSheetSteps(
StepBuilderFactory stepBuilderFactory,
RawDataReader[] readers,
DelegatingWriter writer,
DelegatingProcessor processor,
@Value("${batchcrud.chunkSize}") int chunkSize)
{
int numberOfReaders = readers.length;
Step[] steps = new Step[numberOfReaders];
for (int i = 0; i < numberOfReaders; i++)
{
steps[i] = stepBuilderFactory.get("processSheet" + i + "Step").<RawData, DataItem>
chunk(chunkSize).reader(readers[i]).processor(processor).writer(writer).build();
}
return steps;
}
Если вы включите вашу конфигурацию, мы можем предоставить более конкретный ответ. –
Вы бы не стали Майклом Минеллером, который написал книгу «Весенняя партия», которую я читал прошлой ночью, не так ли? Я добавил код. –
Если книга, которую вы читаете, это Pro Spring Batch ... Я. –