Sto cercando di configurare un flusso in primavera lotto usando java-config, questo flusso ha fondamentalmente a che fare questo:Primavera Batch (java-config) di eseguire il punto dopo un jobExeuctionDecider
Eseguire un init passo (che aggiunge un record nel database),
quindi eseguire un decisore per controllare file di esistenza,
2,1. Se i file esistono eseguirà il lavoro di caricamento (che è un altro flusso con una serie di passaggi in parallelo)
- Eseguire un passaggio di fine (che aggiunge un record nel database), questo dovrebbe sempre essere eseguito, anche se 2.1 non è stato eseguito.
Ho provato a fare questa configurazione, ma il passo finitura non corre:
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();
Sono in grado di farlo funzionare facendo come di seguito, ma non è affatto elegante:
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();
Qualcuno sa qual è il modo giusto per eseguire un passaggio dopo una decisione che utilizza java-config?
Nel tuo primo codice di esempio, hai incluso due 'end()'. Prova a rimuovere il primo 'end()'. –
Il ritorno di .on è un TransitionBuilder, devo avere qualcosa dopo l'on. Ho anche provato a mettere un passo stupido dopo l'on, ma non ha funzionato. –