【问题标题】:Why do grails Quartz jobs die after a few minutes on production?为什么 grails Quartz 作业在生产几分钟后就死掉了?
【发布时间】:2013-08-07 22:20:10
【问题描述】:

使用 grails Quartz 插件(最新的稳定版本,0.4.2),我有四个不同的作业在我的开发环境中运行良好,其中大部分每分钟运行一次。

但是在生产环境中,它们会运行几分钟然后“死掉”——它们只是不再运行了。没有抛出异常或类似情况。应用程序的其余部分仍然可以正常工作。

有人知道这可能是什么原因吗?我应该从哪里/如何开始分析问题?

【问题讨论】:

  • (作业或插件的)异常不会被抛出但会被记录 - 如果您的 Log4J 配置包含 org.quartz
  • 谢谢,这解释了为什么我没有看到异常!

标签: grails quartz-scheduler grails-plugin production-environment jobs


【解决方案1】:

我还遇到了使用quartz-1.5.2.jar 而不是quartz 插件中包含的quartz-1.7.3.jar 的问题。我将其追溯到 shiro 中的一个依赖项,它本身包含一个 shiro-quartz.jar,它本身依赖于该确切版本的quartz。

我的解决方案是将其添加到我的BuildConfig.groovy:

grails.project.dependency.resolution = {

    ...

    dependencies {
        compile("org.apache.shiro:shiro-quartz:1.0.0-incubating") {
            excludes("quartz")
        }
    }
}

如果不是 shiro,请尝试运行 grails dependency-report。从那里您可以找出导致错误版本石英的原因。

【讨论】:

  • 我也在使用 shiro 插件,这正是我的问题的解决方案。谢谢!
【解决方案2】:

我想我是根据this grails JIRA comment找到问题的。

除了quartz-1.7.3.jar 之外,不知何故,quartz-1.5.2.jar 在我的生产环境中。我已将其删除,重新启动 Tomcat 后,它一直在工作(至少到现在为止)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    相关资源
    最近更新 更多