Я пытаюсь настроить поток в весеннем пакете с использованием Java-конфигурации, этот поток в основном должен сделать это:Spring Batch (Java-конфигурации) шаг выполнения после jobExeuctionDecider
Выполнение инициализации шаг (который добавляет запись в базу данных),
затем выполнить решающий проверить существование файла,
2.1. Если файлы существуют, он выполнит задание на загрузку (это другой поток с параллельной связкой шагов)
- Выполнение этапа завершения (который добавляет запись в базу данных), это должно всегда выполняться, даже если 2.1 не был выполнен.
Я попытался сделать эту конфигурацию, но шаг отделки никогда не работает:
Flow flow = new FlowBuilder<SimpleFlow>("commonFlow")
.start(stepBuilderFactory.get("initStep").tasklet(initTasklet).build())
.next(decider)
.on(FlowExecutionStatus.COMPLETED.getName())
.to(splitFlow)
.from(decider).on("*")
.end()
.next(stepBuilderFactory.get("finishStep").tasklet(finishTasklet).build())
.end();
Я могу заставить его работать делать, как показано ниже, но это не так элегантно всего:
Step finishStep = stepBuilderFactory.get("finishStep").tasklet(finishTasklet).build();
Flow flow = new FlowBuilder<SimpleFlow>("commonFlow")
.start(stepBuilderFactory.get("initStep").tasklet(initTasklet).build())
.next(decider)
.on(FlowExecutionStatus.COMPLETED.getName())
.to(splitFlow)
.next(finishStep)
.from(decider).on("*")
.to(finishStep)
.end();
Кто-нибудь знает, как правильно выполнить шаг после принятия решения с помощью java-config?
В вашем первом примере кода вы включили два «конца()». Попробуйте удалить первый «конец()». –
Возвращение .on - TransitionBuilder, у меня должно быть что-то после включения. Я также попытался сделать глупый шаг после, но не работал. –