Spring Batch Solution

1

В нашем приложении у нас около 100000 клиентов, и нам нужно обрабатывать некоторые данные ежемесячно. Логика обработки данных для каждого клиента включает в себя около 7 оставшихся вызовов для различных услуг. Мы должны сделать это в весенней партии для достижения производительности.

Шаги по обработке данных - l Читать всех клиентов Список - получить веб-сервис данных - я звоню в 7 различных микро сервисов, чтобы узнать баланс, тип, сборы, дату и т. Д. И т. Д. - l Записать результат в корзину S3

пожалуйста, предложите дизайн потока в партии весной

1 ответ

Вы можете создать поток из нескольких шагов, где для каждого шага вы можете отправить "serviceName" в качестве параметра. Напишите customReader, который вызывает сервис на основе serviceName. В CustomReader вы можете выбрать способ вызова услуг.

List<Step> steps = new ArrayList<>();
for(each of your service){
 createStep(String serviceName);
}

private Step createStep(String serviceName){
return stepBuilderFactory.get(""service calls")
.reader(UorCustomReader)
.processor(YourProcessor)//if needed
.writer(YourCustomCompositeWriter)
}