【问题标题】:Quartz job fires multiple times石英作业多次触发
【发布时间】:2011-01-30 15:40:10
【问题描述】:

我有一个构建块,它设置了一个 Quartz 作业以每天早上发送电子邮件。这项工作每天早上被解雇 3 次,而不是一次。我们有一个 Blackboard 的托管实例,有人告诉我它在三个虚拟服务器上运行。我猜这是导致问题的原因,因为构建块以前在单个服务器安装上运行良好。

有没有人有 Quartz 经验,或者可以建议如何防止工作多次触发?

谢谢,

【问题讨论】:

    标签: scheduled-tasks scheduling quartz-scheduler


    【解决方案1】:

    您没有详细描述您的 Quartz 实例是如何被实例化和启动的,但请注意,如果您同时针对同一个作业存储数据库运行多个 Quartz 实例,将会导致未定义的行为,除非您启用集群(请参阅http://www.quartz-scheduler.org/docs/configuration/ConfigJDBCJobStoreClustering.html)。

    【讨论】:

      【解决方案2】:

      我想我对此的回应有点晚了,但我们的应用程序也有类似的场景。我们有 4 台服务器正在运行作业,其中一些可以同时在多个服务器上运行,而有些应该只运行一次。正如威尔的回复所说,您可以查看Quartz 的聚类功能。

      我们的方法有点不同,因为在我们改用 Quartz 之前,我们有一个本土解决方案。我们的作业使用存储 cron 触发器和其他作业信息的数据库表,然后“锁定”作业的条目,以便其他服务器都无法执行它。这可以防止作业在服务器上多次运行,并且到目前为止相当有效。

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 2013-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-26
        • 2011-09-02
        • 2020-12-15
        • 1970-01-01
        • 2010-12-13
        相关资源
        最近更新 更多