我正在为 Grails 使用 Quartz 插件并且有一个简单的工作:
class MyJob{
static triggers = {
cron name: 'MyJobTrigger', cronExpression: '0 0/1 * * * ?'
}
def execute(){
println "do some work"
}
}
一切正常,工作按预期每分钟启动。
现在我希望 cron 表达式是属性驱动的,这样我就可以在不同的环境中覆盖。所以 Config.groovy 包含默认值:
myJob.cron = '0 0/1 * * * * ?'
我改变了我的班级:
GrailsApplication grailsApplication
static triggers = {
cron name: 'MyJobTrigger', cronExpression: grailsApplication.config.myJob.cron
}
当我运行我的代码时,我得到这个错误:
Caused by MissingPropertyException: No such property: grailsApplication for class: MyJob
假设这与加载/初始化 MyJob 类的方式有关,在注入 GrailsApplication 之前创建的静态触发器???GrailsApplication 的这种使用是我获取项目属性的常用方式。
我还能如何拥有一个属性驱动的 cron 触发器?