运行在不同模块中配置的Spring Scheduled作业

时间:2017-08-03 20:23:10

标签: spring-boot spring-scheduled

我有一个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");
}

但是,当我运行应用程序时,计划作业无法启动。当我将这些Scheduled方法放在我的Application类所在的服务应用程序模块中时,它们会运行。

如何在不同的模块中运行它,配置在服务应用程序模块中?

1 个答案:

答案 0 :(得分:0)

将具有printName()的类的包添加到扫描的包列表中,例如:

@ComponentScan("com.service.tool","com.service.module1")