🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
如果 Quartz 被用在集群环境下,那么一个定时任务就会在多个节点下被执行,我们并不希望这样。 要防止这中情况发生就需要对 Quartz 进行[任务持久化](https://www.kancloud.cn/king_om/java_houduan_kuangjia_01/3146643),并将下面的几个配置设置如下。 ```yml spring: quartz: properties: org: quartz: scheduler: #调度器名称,整个集群必须唯一 instanceName: quartz02Cluster #调度器ID。每个节点的调度器ID必须唯一,使用AUTO进行自动生成即可 instanceId: AUTO jobStore: #设置为true,开启在集群环境下使用 isClustered: true ... ``` Quartz 定时任务在集群环境下的调度规则如下: * 无论多少个节点,某一个 Quartz 任务只会随机被调度到其中某一个节点上被执行,此时剩余的其它节点不会再触发该任务。 * 如果某一个节点挂了,则 Quartz 任务会随机调度到其中任一一个可用的节点执行。