我正在尝试从集成测试类手动触发作业,但作业没有被触发
这是我的代码:
QUARTZ JOB:
package com.example.home
class OrderConfirmationEmailJob {
static triggers = {}
def execute(context) {
println "example" + new Date()
}
}
集成测试:
package com.example.home
class OrderConfirmationEmailServiceIntegrationTests {
OrderConfirmationEmailService orderConfirmationEmailService
@Test
void testSomething() {
OrderConfirmationEmailJob.triggerNow(['key': 'Value'])
}
}
这项工作没有被触发。我在这里缺少什么?
答案 0 :(得分:1)
如果您使用的是grails-quartz-plugin 1.0.1,则无法使用“triggerNow()”方法,因为未实现。如果你正在使用quartz2调度程序插件,并且你想创建自己的工作类,因为它是用documentation编写的,
插件将设置grailsAppication和appCtx (applicationContext)将“global”属性放入schedule中 上下文。默认情况下,Quartz使用PropertySettingJobFactory 它将尝试通过存在的keyName注入属性 在计划; s上下文,作业上下文或触发上下文中 创造它时的工作。这意味着如果你设置自己的工作和 需要appCtx或grailsApplication只声明一个字段和它 将被设定。
希望这个帮助