【发布时间】:2015-05-12 09:41:01
【问题描述】:
我正在开发一个需要一些后台作业的应用程序,例如发送有关待处理警报的电子邮件。在独立配置中,作业已配置并与 Spring 调度程序和计划任务一起正常工作。 但我不知道如何使它们在具有高可用性 JBoss 环境的集群上同步工作。主要问题是避免不同节点上的作业同时运行。
我读过这篇关于 Quartz 的文章:
http://quartz-scheduler.org/documentation/quartz-2.x/configuration/ConfigJDBCJobStoreClustering
但不建议在高可用性场景中使用:
切勿在单独的机器上运行集群,除非它们的时钟是 使用运行的某种形式的时间同步服务(守护进程)进行同步 非常有规律(时钟必须在一秒钟之内)。看 http://www.boulder.nist.gov/timefreq/service/its.htm 如果你是 不熟悉如何做到这一点。
现在我已经用自制的阻塞系统 (Why my pessimistic Locking in JPA with Oracle is not working) 解决了同步问题。但我想知道 JBoss 是否为这个普遍存在的问题提供了一些解决方案。
【问题讨论】:
-
我想标题可能是“如何避免在使用 Spring 计划任务的集群 JBoss EAP 中运行重复任务”
-
好的,我会编辑我的问题。