Trigger Spring Batch как часть веб-приложения - PullRequest
1 голос
/ 30 июня 2019

Я работаю над веб-приложением, поскольку в рамках требования пользователи приложения нажимают кнопку, доступную в пользовательском интерфейсе, чтобы за кадром spring-batch приложение запускало и обрабатывало данные в течение 15 минут.

Поскольку приложение представляет собой веб-интерфейс, пользователи могут запускать пакетный процесс одновременно в любой заданный момент времени. Когда пользователь выполняет действие щелчка, пользовательскому интерфейсу не нужно ждать состояния пакета или ответа.

У меня уже есть готовый процесс spring-batch, который написан на SimpleJobLauncher, чтобы решить эту проблему, я планирую закодировать конечную точку REST для вызова spring-batch, однако не уверен в обработке нескольких запросов от пользовательского интерфейса.

Мне интересно, как я могу перенести существующий синхронный пакетный процесс на новое приложение.

Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 01 июля 2019

По умолчанию SimpleJobLauncher использует синхронный исполнитель задач для запуска заданий. В вашем случае вам нужно использовать асинхронную реализацию TaskExecutor с модулем запуска заданий. Это обеспечит одновременный запуск рабочих мест. Вот пример:

@Bean
public JobLauncher jobLauncher() {
    SimpleJobLauncher jobLauncher = new SimpleJobLauncher();
    jobLauncher.setJobRepository(jobRepository());
    jobLauncher.setTaskExecutor(new SimpleAsyncTaskExecutor());
    jobLauncher.afterPropertiesSet();
    return jobLauncher;
}

Это подробно объясняется в Настройка JobLauncher и Запуск заданий из веб-контейнера разделов справочной документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...