gpt4 book ai didi

grails - chalice 应用程序启动时如何避免 quartz 启动

转载 作者:行者123 更新时间:2023-12-05 01:20:29 25 4
gpt4 key购买 nike

我在 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...
}

在这种情况下一切正常,如果不在生产中,触发器将被忽略。
现在问题很简单,如果我在生产环境中启动应用程序,只要 grails 启动,作业就会启动。我希望避免在应用程序启动时运行的作业,但只有在 cronExpression 中正确设置时才运行。

任何的想法?

更新:
最后我把这一行放在 config.groovy 中:
environments {
development {
grails.logging.jul.usebridge = true
grails.plugin.quartz2.autoStartup = false
}
production {
grails.logging.jul.usebridge = false
}
}

现在似乎不是从 bootstrap 开始我必须做更多的测试,我让你知道。

谢谢你

更新2:
好的,现在计划根本没有启动,我期待它启动但不执行计划的作业,而是等待正确的时间来触发它。有什么帮助吗?

多谢

更新3:
对不起,但我觉得真的很愚蠢,在启动时添加简单的 repeatCount:0 火,因此删除它可以完美运行,再次抱歉。

最佳答案

通过设置 conf\QuartzConfig.groovy ,您可以控制作业调度自动启动的环境。例如:

quartz {
autoStartup = true
jdbcStore = false
waitForJobsToCompleteOnShutdown = true
}

environments {
development {
quartz {
autoStartup = false
}
}
}

在您的 jobs类,你也可以设置一个 startDelay在你的触发器上
static triggers = {
cron name: 'myTrigger', startDelay: 5000, cronExpression: '0 15 2 * * ?'
}

关于grails - chalice 应用程序启动时如何避免 quartz 启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12567898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com