2016-04-25 78 views
3

在我的Spring boot application我目前使用運行以下:Spring Boot應用程序:將應用程序分成獨立的任務從命令行運行?

@SpringBootApplication 
@EnableAutoConfiguration 
@ComponentScan("my.packages.to.scan") 
@EnableScheduling 
public class Scheduler { 

    public static void main(String[] args){ 

     SpringApplication.run(Scheduler.class, args); 
    } 
} 

這則發現下面的類來運行:

@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() { 

    } 

} 

正如從以上可以看出,我的應用程序運行所有3方法依次爲

我想變化我的應用程序,以便任何方法/任務可以在命令行中隨時跑,而不是調用的主要方法和運行行中的所有三種方法。

我該怎麼做?我需要從MyApplication類中移動我的方法嗎?

+0

您是否希望能夠在應用程序的運行時期間運行任務,或者只能在啓動時作爲命令行中的參數運行? – dunni

+0

我希望它們能夠作爲cmd行上的參數運行? – java123999

回答

0

我建議看看項目Spring Batch。該項目正是爲了這樣的要求。特別是this section of its docs可能是你的興趣所在。它描述瞭如何從命令行執行彈簧批處理作業。

對評論的反應: Here is my Github repository with working example。請注意shell腳本作爲示例如何從命令行執行某些任務。

+0

好的,有沒有一種簡單的方法使用java,我可以配置我的應用程序能夠單獨調用每個方法? – java123999

+0

是的,有!看看JMX –

+0

我現在在看它,你能舉一個我將如何使用它的例子嗎? – java123999

相關問題