我们在2.2.5上运行了2个Grails应用程序,因为旧插件有一些依赖性。两者都安装了Quartz,而其中一个是按预期运行,另一个没有。
在调试过程中我删除了所有内容并将其基本上作为示例保留:
package test
public class TestJob{
static triggers = {
simple startDelay: 60000, repeatInterval: 1000
}
public def execute(){
log.error "help me"
}
}
所以没有伟大的震撼,但是对于爱情和金钱,日志不会显示出来。
如果我跑:
TestJob.triggerNow()
我明白了:
2014-12-23 14:22:27,685 [quartzScheduler_Worker-1] DEBUG listeners.SessionBinderJobListener - Persistence session is opened.
Error |
2014-12-23 14:22:27,686 [quartzScheduler_Worker-1] ERROR test.TestJob - help me
2014-12-23 14:22:27,686 [quartzScheduler_Worker-1] DEBUG listeners.SessionBinderJobListener - Persistence session is flushed
这是预期的,所以我知道输出正在进入日志流,并且它不会抛出一些静默异常。
当我启动应用程序时,我得到以下输出:
2014-12-23 14:24:54,282 [localhost-startStop-1] DEBUG quartz.QuartzGrailsPlugin - Scheduled Job Classes count: 2
所以我知道调度程序正在启动它们,但它似乎没有执行它们。
来自config.groovy:
quartz {
autoStartup = true
jdbcStore = false
waitForJobsToCompleteOnShutdown = true
exposeSchedulerInRepository = false
props {
scheduler.skipUpdateCheck = true
}
}
我已尝试在其他2.2.5应用程序中运行此作业,并且它会毫无问题地执行,因此我实际上处理了问题,并且不知道如何进一步调试。
我还打开了日志:
trace 'grails.plugins.quartz', 'grails.app.jobs'
但这并没有给出很多输出方式。
我已经完成或通常清理并删除.slcache只是为了确定,但我现在已经陷入困境。
您的建议有助于调试。
答案 0 :(得分:1)
确认您的Config.groovy文件中没有quartz.autoStartup = false
,并将debug 'grails.plugins.quartz.QuartzGrailsPlugin'
添加到记录器中。
希望这有帮助!
谢谢,
SA