在我的抓握应用程序中,我有一个运行的工作,这是它的触发器防御:
static triggers = {
simple name: 'myJob', startDelay: 1000, repeatInterval: 36000000
}
我想更改它的值不应该是硬编码的,但它们应该来自congif / properties文件。
我试过了:
Config.groovy中:
myJob {
simpleName = 'myJob'
startDelay = '1000'
repeatInterval = '36000000'
}
并在作业触发器中:
static triggers = {
simple name: grailsApplication.config.myJob.name, startDelay: grailsApplication.config.myJob.startDelay, repeatInterval: grailsApplication.config.myJob.repeatInterval
}
但后来我收到一条消息说:不能从静态上下文中引用非静态符号'grailsApplication'。
有没有人知道怎么做?
感谢。
答案 0 :(得分:6)
尝试使用Holders助手类。
import grails.util.Holders
static triggers = {
simple name: Holders.config.myJob.name,
startDelay: Holders.config.myJob.startDelay,
repeatInterval: Holders.config.myJob.repeatInterval
}
答案 1 :(得分:0)
我也发现了这个问题,我通常做的是将属性存储在.properties文件中,从Quartz作业中删除触发器,然后在Bootstrap.groovy中手动引导这些作业,从属性文件中获取值。 / p>
检查:Quartz Plugin Documentation以了解如何触发作业
答案 2 :(得分:0)