2015-05-09 111 views
0

我必須做出類似的兩份工作,並希望將兩份工作合併爲一份工作。Grails Quartz - 如何將類似的兩個工作合併爲一個工作?

如何將AJob和BJob合併爲一個新Job?

換句話說,我想重構AJob.groovy和BJob.groovy到一個類NewJob.groovy中。

AJob.groovy

class AJob { 
    def testService 
    static triggers = { 
     cron name: 'myTrigger', cronExpression: "0 0 6 * * ?" 
    } 
    def group = "MyGroup" 
    def description = "A job with hello" 
    def execute() { 
     testService.hello("hello") 
    } 
} 

BJob.groovy

class BJob { 
    def testService 
    static triggers = { 
     cron name: 'myTrigger', cronExpression: "0 0 7 * * ?" 
    } 
    def group = "MyGroup" 
    def description = "B job with goodbye" 
    def execute() { 
     testService.hello("goodbye") 
    } 
} 

TestService.groovy

class TwitterService { 
    def hello(message){ 
     print message 
    } 
} 
+0

你是什麼意思的結合?你想做什麼?你想避免什麼?您需要提供更多關於您要完成的任務的信息以及您在此過程中遇到的問題。 –

+0

我的英語不好。我改變了這個問題,我如何將AJob和BJob合併到NewJob中?英語好嗎? – SpaceNet

+0

換句話說,我想重構AJob.groovy和BJob.groovy到一個類NewJob.groovy。 – SpaceNet

回答

1

我假設的唯一原因做這種方式(而不是其的Cron同時調用兩者)將以某種方式同步它們,以保證A在B之後被調用bvious解決辦法是如上文提到的:

class NewJob{ 
    def execute() { 
     testService.hello("hello") 
     testService.hello("goodbye") 
    } 
} 

如果由於某種原因,這些都是異步調用(你仍然要同步),你將不得不使用回調的線程上,或者創建單獨的線程,並以某種方式注入依賴關係。不這樣做的唯一原因是,如果你需要記錄石英工作的依賴注入。更多細節?

相關問題