我有一个表单
的springboot应用程序src/main/java/example
- Application.java
- JobConfiguration.java
scheduler
- Job1.java
- Job1Runner.java
- Job2.java
- Job2Runner.java
我希望能够在本地按需运行我的工作,所以我为每个工作创建了一个单独的Runner类(例如JobRunner.java
)但是目前当我运行Application
类时它也会运行我的{ {1}}类,因为它扩展了CommandLineRunner。有没有办法让我的跑步者分开? (所以Job1Runner
类不会运行它们,而Application
不会互相运行等等)
应用
JobRunner
JobConfiguration
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
JobRunner示例
@Configuration
@EnableScheduling
public class JobConfiguration implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
// Register jobs
}
}
答案 0 :(得分:1)
有多种方法可以解决这个问题:
spring.profiles.active=jobrunner1
从命令行激活一个,或spring.profiles.active=jobrunner1,jobrunner2
。此解决方案允许您保留多个CommandLineRunner
实现。CommandLineRunner
有main
方法,因此您可以保留它们,或只转换为常规main
类。