Натолкнулся на аналогичную проблему, когда еще не вызывается часть (технически вызывается только сначала ())
Почти все веб-сайты, связанные с примерами потока и принятия решения, имеют схожие конфигурации заданий ине смог понять, в чем заключалась проблема.
После некоторых исследований выяснил, каким образом весна поддерживает решающих и принимающих решения.На высоком уровне, при инициализации приложения, на основе конфигурации задания Spring поддерживает список решений для объекта-решателя (например, decsion0, solution1 и т. Д.).
, когда мы вызываем метод decider (), он всегдавозвращает новый объект для решающего.Поскольку он возвращает новый объект, список содержит только одно сопоставление для каждого объекта (т. Е. Solution0) и, поскольку он является списком, он всегда возвращает первое сконфигурированное решение. Так что это причина того, почему только первый сконфигурированный переход былcall.
Решение: Вместо вызова метода для решающего устройства создайте однотонный компонент для решающего устройства и используйте его в конфигурации задания
Пример:
@Bean
public JobExecutionDecider stepDecider() {
return new CustomStepDecider();
}
внедрите его и используйте в компоненте создания вакансии
@Bean
public Job sampleJob(Step step1, Step step2,Step step3,
JobExecutionDecider stepDecider) {
return jobBuilderFactory.get("sampleJob")
.start(step1)
.next(stepDecider).on("TYPE1").to(step2)
.from(stepDecider).on("TYPE2").to(step3)
}
Надеюсь, это поможет.