Spring 引导应用程序:将应用程序拆分为单独的任务以便从命令行 运行?
Spring Boot application: Splitting application into seperate tasks to be ran from command line?
在我的 Spring boot application
中,我目前 运行 使用以下内容:
@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan("my.packages.to.scan")
@EnableScheduling
public class Scheduler {
public static void main(String[] args){
SpringApplication.run(Scheduler.class, args);
}
}
然后找到以下 class 到 运行:
@Component
public class MyApplication {
@Transactional
@Scheduled(fixedRate = 400000, initialDelay = 1000)
public void tasks() {
methodOne();
methodTwo();
methodThree();
}
public void methodOne() {
}
public void methodTwo() {
}
public void methodthree() {
}
}
从上面可以看出,我的应用程序运行依次三个方法。
我想更改我的应用程序,以便任何 method/task可以从命令行运行在任何时候,而不是连续调用 main 方法和 运行ning 所有三个方法。
我该怎么做?我是否需要从 MyApplication class 移动我的方法?
我建议查看您可能感兴趣的项目 Spring Batch. That project is exactly for such requirements. Especially this section of its docs。它描述了如何 spring 从命令行执行批处理作业。
对评论的反应:
Here is my Github repository with working example。请注意 shell 脚本作为示例如何从命令行执行某些任务。
在我的 Spring boot application
中,我目前 运行 使用以下内容:
@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan("my.packages.to.scan")
@EnableScheduling
public class Scheduler {
public static void main(String[] args){
SpringApplication.run(Scheduler.class, args);
}
}
然后找到以下 class 到 运行:
@Component
public class MyApplication {
@Transactional
@Scheduled(fixedRate = 400000, initialDelay = 1000)
public void tasks() {
methodOne();
methodTwo();
methodThree();
}
public void methodOne() {
}
public void methodTwo() {
}
public void methodthree() {
}
}
从上面可以看出,我的应用程序运行依次三个方法。
我想更改我的应用程序,以便任何 method/task可以从命令行运行在任何时候,而不是连续调用 main 方法和 运行ning 所有三个方法。
我该怎么做?我是否需要从 MyApplication class 移动我的方法?
我建议查看您可能感兴趣的项目 Spring Batch. That project is exactly for such requirements. Especially this section of its docs。它描述了如何 spring 从命令行执行批处理作业。
对评论的反应: Here is my Github repository with working example。请注意 shell 脚本作为示例如何从命令行执行某些任务。