如何调试石英不会触发我的工作 - Quartz Plugin 1.0.1 / 1.0.2& Grails 2.2.5

时间:2014-12-23 12:42:10

标签: grails quartz-scheduler grails-2.0

我们在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只是为了确定,但我现在已经陷入困境。

您的建议有助于调试。

1 个答案:

答案 0 :(得分:1)

确认您的Config.groovy文件中没有quartz.autoStartup = false,并将debug 'grails.plugins.quartz.QuartzGrailsPlugin'添加到记录器中。

希望这有帮助!

谢谢,
SA