Запускать запланированные задания Spring, настроенные в разных модулях

У меня есть приложение Spring Boot, в котором я использую планирование Spring для планирования заданий cron. В моем приложении есть 3 разных модуля: service-toolA, service-toolB и service-application.

Мой модуль служебного приложения имеет конфигурацию Spring-Boot и класс Application следующим образом:

package com.service.tool.main;

@SpringBootApplication
@ComponentScan("com.service.tool")
@EnableAsync
@EnableScheduling 
public class Application {

    public static void main(String args[]) {
        SpringApplication.run(Application.class);
    }
 }

Теперь у меня есть запланированные задания в других модулях service-toolA и service-toolB. Я настроил их следующим образом:

@Scheduled(fixedRate = 4000)
public void printName() {
   System.out.println("Hello World");
}

Однако, когда я запускаю приложение, запланированные задания не запускаются. Они запускаются, когда я помещаю эти запланированные методы в модуль приложения-службы, в котором присутствует мой класс Application.

Как мне запустить его в разных модулях, а конфигурация находится в модуле сервисного приложения?


person Sri    schedule 03.08.2017    source источник


Ответы (1)


Добавьте пакет для класса, имеющего printName(), в список просканированных пакетов, например:

@ComponentScan("com.service.tool","com.service.module1")
person UserF40    schedule 03.08.2017
comment
По-прежнему та же проблема. Это не сработало. Не уверен, нужно ли мне регистрировать bean-компоненты для планировщика. - person Sri; 04.08.2017