У меня есть приложение удаленного разбиения Spring Batch, которое генерирует раздел нормально, и разделы работают функционально. Однако в данный момент разделы работают последовательно, а не параллельно. Я выполняю задание / задачи / разделы в потоке данных весеннего облака. Я разделил функциональность мастера и работника на отдельные классы / пакеты, которые имеют отдельные профили. Код класса моего основного профиля (частичный):
public class PartitionMaster {
....
// Configure Remote Job
@Bean
public Job jobRemotePartitioning() {
return this.jobBuilderFactory
.get("jobRemotePartitioning")
.incrementer(new RunIdIncrementer())
.flow(paymentRaiseMasterStep())
.end()
.build();
}
....
@Bean
public Step paymentRaiseMasterStep() {
CustomPartitioner customPartitioner = new CustomPartitioner(datasource, propertiesConfig.getTimeTravelDate(), propertiesConfig.getLeadTime());
return this.masterStepBuilderFactory
.get("paymentRaiseMasterStep")
.partitioner("paymentRaiseWorkerStep", customPartitioner)
.gridSize(propertiesConfig.getGrid())
.outputChannel(masterPaymentRaiseRequests())
.taskExecutor(taskExecutor())
.build();
}
....
@Bean
public TaskExecutor taskExecutor(){
return new SimpleAsyncTaskExecutor("paymentRaiseWorkerStep");
}
....
}
Код класса моего рабочего профиля (частичный):
public class PartitionWorker {
....
@Bean
public Step paymentRaiseWorkerStep() {
return this.workerStepBuilderFactory
.get("paymentRaiseWorkerStep")
.inputChannel(consumePaymentRaiseMasterRequests())
.tasklet(taskletProcessing(null, null))
.build();
}
....
}
Буду признателен любому эксперту по удаленному разбиению Spring Batch. Когда в весеннем облачном потоке данных работает 2 раздела:
Шаговые разделы Полное выполнение завершенных шаговых разделов
Если я запускаю 2 рабочих, 1 рабочий обрабатывает оба раздела последовательно. Другой работник не обрабатывает разделы.
Я использую scdf для запуска мастера и рабочих в качестве задач:
задач scdf (1 мастер 2 рабочих)