Как разделить последовательные шаги на последовательность в весенней партии - PullRequest
0 голосов
/ 11 октября 2018

Я знаю, что инфраструктура Spring Batch может разделить главный шаг для параллельного запуска нескольких шагов подчиненного.

Мое требование - разделить последовательные шаги последовательно (например, поток) для работы с несколькими таблицами,вместо одного шага.Я могу думать только о двух альтернативах на моей голове.

  1. Создайте только один тасклет, чтобы собрать всю логику для обновления последовательных таблиц.
  2. Создать шаг разбиения для каждого шагав потоке.

В идеале хотелось бы, чтобы подпружиненная партия поддерживала эту функцию из коробки.Просьба пролить свет на то, как лучше всего достичь цели.

Пример высоко ценится.

Обновление: я провел поиск в Google и обнаружил, что могу разделить поток с помощью FlowStep, как показано ниже.Правильный ли это подход?

public Step partiotionStep() {
    return stepBuilderFactory.get("partiotionStep")
            .partitioner("slaveStep", partitioner())
            .step(new FlowStep(flow()))
            .taskExecutor(taskExecutor())
            .build();

 public Flow flow() {
    return new FlowBuilder<Flow>("flow")
            .start(step1())
            .next(step2())
            .next(step3())
            .build();

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете определить задание с несколькими шагами в последовательности, каждый шаг является разделенным шагом:

public Job job() {
    return jobBuilderFactory("job")
            .start(step1()) // step1 is a partitioned step
            .next(step2()) // step2 is also a partitioned step
            .build();
}

Подобный вопрос с примером можно найти в моем ответе здесь: Возможно ли этообъединить разделение и параллельные шаги в пакетном режиме?

Надеюсь, это поможет.

...