Мой весенний пакетный шаг продолжает цикл после достижения сборки

#spring-batch

#spring-batch

Вопрос:

Этот раздел считывает файл с нашего сервера, обрабатывает его, записывает и архивирует.

     @Bean
    public Step step1() {
        log.info("Made if to step1");
        System.out.println("Made it to Step 1");
        return this.stepBuilderFactory.get("step1")
                .<PaymentTransaction, PaymentTransaction>chunk(10)
                .reader(paymentTransactionItemReader())
                .writer(paymentTransactionItemWriter())
                .build();
    }

    @Bean
    public JobExecutionDecider decider() {
        System.out.println("Made it to the decider");
        return (jobExecution, stepExecution) -> new FlowExecutionStatus("Success"); }

    @Bean
    public FlowJobBuilder job() {
        return jobBuilderFactory.get("BenefitIssuance")
                .start(step1())
                .next(decider())
                .on("Success")
                .end()
                .build();
    }
  

Однако, когда он достигает шага build () в конце, он возвращается к считывателю

Комментарии:

1. Предполагается ли, что job() метод возвращает a FlowJobBuilder , а не a Job ? Где определение задания, которое вы пытаетесь выполнить?

Ответ №1:

Как упоминалось в комментариях, я не понимаю, почему job() метод возвращает a FlowJobBuilder , а не a Job . Следующее определение задания не повторяется на том же шаге:

 @Bean
public Job job() {
    return jobs.get("job")
            .start(step1())
               .next(decider())
               .on("Success")
               .end()
               .build()
            .build();
}