NiB*_*iBE 4 grails groovy quartz-scheduler
我在GRAILS中有一个使用Quartz2插件的简单应用程序.在作业文件中我有:
static triggers = {
simple repeatCount: 0 // execute job once in 5 seconds
cron cronExpression: '0 15 2 * * ?'
}
def execute() {
if (Environment.current == Environment.PRODUCTION)
do something...
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下一切正常,如果它不在生产中,则忽略触发器.现在问题很简单,如果我在生产中启动应用程序,一旦grails启动就会启动作业.我希望避免在应用程序启动时运行作业,但只有在cronExpression中正确设置时才会运行.
任何的想法?
更新:最后我把这行放在config.groovy中:
environments {
development {
grails.logging.jul.usebridge = true
grails.plugin.quartz2.autoStartup = false
}
production {
grails.logging.jul.usebridge = false
}
}
Run Code Online (Sandbox Code Playgroud)
现在似乎没有从引导开始我必须做更多的测试,我告诉你.
谢谢
UPDATE2:好了,现在计划根本没有开始,我期待它开始但不执行预定的作业,但是等待合适的时间来触发它.有帮助吗?
非常感谢
UPDATE3:抱歉,我觉得很蠢,在启动时添加简单的repeatCount:0 fire,所以删除它完美,再次对不起.
通过设置conf\QuartzConfig.groovy
,您可以控制作业执行自动启动的环境.例如:
quartz {
autoStartup = true
jdbcStore = false
waitForJobsToCompleteOnShutdown = true
}
environments {
development {
quartz {
autoStartup = false
}
}
}
Run Code Online (Sandbox Code Playgroud)
在jobs
课堂上,您还可以设置startDelay
触发器
static triggers = {
cron name: 'myTrigger', startDelay: 5000, cronExpression: '0 15 2 * * ?'
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3681 次 |
最近记录: |