java - Quartz支持在多个节点上执行一次吗?

标签 java quartz

在我的场景中,Quartz 将嵌入在我的 Web 应用程序中运行,该应用程序将部署在两个节点上。我可以安排一个任务并使其在两个节点上仅执行一次吗? DisallowConcurrentExecution 注释是否用于此目的?

例如,如果我安排一个每小时触发的任务,那么该任务一天在两个节点上的总执行次数可以是 24 而不是 48 吗?

最佳答案

您可以将quartz设置为集群模式。它的主要要求是您的服务的两个实例应该共享相同的数据库,因为quartz是基于数据库进行集群的。 如果您在您的案例中使用集群机制,将执行 24 个作业。这些是您必须使用的一些属性。

org.quartz.scheduler.instanceName = MyClusteredScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval=20000

请参阅文档: http://www.quartz-scheduler.org/documentation/quartz-1.8.6/configuration/ConfigJDBCJobStoreClustering.html

关于java - Quartz支持在多个节点上执行一次吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58513804/

相关文章:

java - 从开发人员到 Web 开发人员再到 Web 设计师

java - 如何在Java中给出数据库的相对路径

java - 是否可以通过配置文件激活或停用作业以避免意外启动?

java - 反射(reflect)具有泛型类型参数的方法时出现 NoSuchMethodException

java - 为什么我的Key中的 '1'位越多,放到HashMap中的时间就越长?

java - 如何使用 jetty 的 java keytool 创建/加载 jks 文件?

spring-boot - 使用 Spring Boot 在 Quartz 中触发器自动进入错误状态

JavaFX 中具有静态引用的静态按钮的 java.lang.NullPointerException

java - 每分钟只运行一次的 Quartz Expression