Как я могу использовать Spring Cloud Task с модульными заданиями Spring Batch? - PullRequest
0 голосов
/ 10 февраля 2020

Я разработал пару Spring Batch заданий в Spring Boot веб-приложении. Для упрощения обслуживания я использовал @EnableBatchProcessing(modular = true) следующим образом:

@Configuration
@EnableBatchProcessing(modular = true)
public class BatchConfiguration {

    @Bean
    @ConditionalOnProperty(value="first.batch.enabled", havingValue = "true")
    public ApplicationContextFactory firstJobs() {
        return new GenericApplicationContextFactory(FirstModule.class);
    }

    @Bean
    @ConditionalOnProperty(value="second.batch.enabled", havingValue = "true")
    public ApplicationContextFactory secondJobs() {
        return new GenericApplicationContextFactory(SecondModule.class);
    }
    ...
}

и у меня есть @Configuration классы, по одному на каждый Job, определенные соответственно в базовых каталогах модулей. Все работает нормально, но теперь я хочу настроить Spring Cloud Dataflow UI, чтобы иметь базовый c мониторинг моего Jobs.

Проблема в том, когда я пытаюсь добавить аннотацию @EnableTask к этому классу BatchConfiguration, Spring не связывает выполнение задания с выполнением задачи. Это работает, только когда я запускаю тесты (@SpringBatchTest).

Я также попытался добавить аннотацию @EnableTask к классу FirstJobConfiguration, а также добавить ее к BatchConfiguration и First|JobConfiguration, но безрезультатно. Я также просмотрел официальную документацию, но ничего не нашел.

Можно ли использовать Spring Cloud Task с модульным Spring Batch?

Спасибо.

1 Ответ

0 голосов
/ 18 февраля 2020

Приложение Spring Batch можно преобразовать в приложение задачи Spring Cloud и управлять им с помощью потока данных Spring Cloud.

Вы должны иметь возможность использовать EnableTask в приложении SpringBoot вместе с EnableBatchProcessing в вашей конфигурации.

Пожалуйста, посмотрите образец SCDF , который демонстрирует этот сценарий.

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