Grails - 从配置文件中获取作业触发器值

时间:2013-05-20 06:15:28

标签: grails jobs

在我的抓握应用程序中,我有一个运行的工作,这是它的触发器防御:

    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'。

有没有人知道怎么做?

感谢。

3 个答案:

答案 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)

你可以这样使用 $ {org.codehaus.groovy.grails.commons.ConfigurationHolder.config.myJob.name}