Несколько заданий в весенней партии не работают с настройкой xml

У меня есть весенняя пакетная установка, и я пытаюсь запустить два задания параллельно. У меня одна работа работает нормально, но при добавлении второй работы она перестает работать. Настройка работы следующая:

<job id = "job">
    <split id = "split_1" task-executor = "taskExecutor" next = "step_4">
        <flow>
            <step id = "step_1">
                <tasklet ref = "taskletStep_1"/>
            </step>
        </flow>
        <flow>
            <step id = "step_2">
                <tasklet ref = "taskletStep_2"/>
            </step>
        </flow>
        <flow>
            <step id = "step_3">
                <tasklet ref = "taskletStep_3"/>
            </step>
        </flow>
    </split>
    <step id = "step_4">
                <tasklet ref = "taskletStep_3"/>
    </step>
</job>

<job id = "job2">
    <split id = "split_2" task-executor = "taskExecutor" next = "step_8">
        <flow>
            <step id = "step_5">
                <tasklet ref = "taskletStep_4"/>
            </step>
        </flow>
        <flow>
            <step id = "step_6">
                <tasklet ref = "taskletStep_5"/>
            </step>
        </flow>
        <flow>
            <step id = "step_7">
                <tasklet ref = "taskletStep_6"/>
            </step>
        </flow>
    </split>
    <step id = "step_8">
        <tasklet ref = "taskletStep_6"/>
    </step>
</job>

Когда это с одной работой, это работает нормально. Когда я добавляю второе задание, первое задание работает нормально, но второе задание отображается:

INFO 40904 --- [nio-8181-exec-1] c.j.b.p.c.JobLauncherController          : The Job must not be null.

Настройка Job Launcher выглядит так:

@RestController
public class JobLauncherController {

    @Autowired
    JobLauncher jobLauncher;

    @Autowired
    Job job;
    Job job2;

    @RequestMapping("/launchjob")
    public String handle() throws Exception {

        Logger logger = LoggerFactory.getLogger(this.getClass());
        try {
            JobParameters jobParameters = new JobParametersBuilder().addLong("time", System.currentTimeMillis())
                    .toJobParameters();
            jobLauncher.run(job, jobParameters);
            jobLauncher.run(job2, jobParameters);
        } catch (Exception e) {
            logger.info(e.getMessage());
        }

        return "Done";
    }
}

Любые предложения, чтобы решить эту проблему? Не уверен, что мне не хватает.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
209
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы пропустили аннотацию @Autowired на job2.

Это сработало - спасибо! По какой-то причине он выполняет задания последовательно. Вы знаете, как я могу заставить задания работать параллельно?

ravecoder 11.03.2019 19:52

@ravecoder Нет, но вы можете найти некоторые рекомендации здесь: stackoverflow.com/questions/45718888/…

David Conrad 11.03.2019 19:54

Спасибо, что поделились Дэвидом. Цените помощь.

ravecoder 11.03.2019 19:55

Другие вопросы по теме