我必须完成类似的两项工作,并希望将这两份工作合并为一份工作。
如何将AJob和BJob合并成一份新工作?
换句话说,我想将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 :(得分:1)
我认为这样做的唯一原因(与Cron同时调用)将以某种方式同步它们,以保证A在B之后被调用。最明显的解决方案是上面提到的:
class NewJob{
def execute() {
testService.hello("hello")
testService.hello("goodbye")
}
}
如果由于某种原因这些是异步调用(并且您仍然想要同步),则必须在线程上使用回调或创建单独的线程并以某种方式注入依赖项。不这样做的唯一原因是,如果你以某种方式需要记录石英作业的相关注入。更多细节?