在grails中外化quartz配置

时间:2010-06-03 16:41:32

标签: grails quartz-scheduler

我正在尝试外化QuartzConfig.groovy

我希望能够使用外部文件将autoStartup设置为true或false。

在Config.groovy中,可以使用grails.config.locations并设置覆盖属性的属性文件。在QuartzConfig.groovy中有这样的东西吗?

谢谢

4 个答案:

答案 0 :(得分:1)

QuartzConfig.groovy仍然没有内置的外部化配置机制。

我们在'10回到了同样的问题。我们的解决方案是分叉插件并使用内置配置和外部化配置

快进到现在(2011年3月)看起来石英插件已经实现了一些新功能。

https://github.com/grails-plugins/grails-quartz/blob/master/QuartzGrailsPlugin.groovy (签出文件末尾的loadQuartzConfig()部分)

看起来这个功能可以通过默认的Config.groovy config.locations机制进行扩展。

这就是它似乎正在做的事情:

  • 加载默认配置(Config.groovy
  • 从classLoader
  • 合并到DefaultQuartzConfig
  • 合并来自classLoader的QuartzConfig
  • 从classLoader
  • 加载quartz.properties

如果需要,您现在可以在Config.groovy中设置配置。

答案 1 :(得分:0)

您可能希望查看http://www.grails.org/doc/1.0.x/guide/3.%20Configuration.html 3.4外部化配置

虽然我没有尝试外化石英,但我已经用它来外化日志:

grails.config.locations = ["file:${userHome}/logger.groovy"]

它完美无缺。

答案 2 :(得分:0)

不,你不能。有关详细信息,请参阅this jira

答案 3 :(得分:0)

基于常规配置变量在Bootstrap中启动Quartz最适合我。

QuartzConfig.groovy:

quartz {
    autoStartup = false
}

BootStrap.groovy中:

class BootStrap {

    def grailsApplication
    def quartzScheduler

    def init = { servletContext ->
        if(grailsApplication.config.startQuartz)
            Thread.start { quartzScheduler.start() }
    }
}

感谢伯特。 http://grails.1312388.n4.nabble.com/Reduce-Quartz-Plugin-Start-up-Time-td1371547.html