zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

quartz 节点争抢Job 问题算法

节点算法 job quartz 问题
2023-09-27 14:21:32 时间

Quartz使用了一个随机的负载均衡算法, Job以随机的方式由不同的实例执行。Quartz官网上提到当前,还不存在一个方法来指派(钉住) 一个 Job 到集群中特定的节点。

以下以分区方式实现:

1.1     场景描述

n  多活集群下指定定时任务在某一个(多个)节点执行

n  多活集群下指定某一个(多个)节点不参与定时任务执行

2   解决方案

2.1     配置文件

classpath/quartz.properties

2.2     配置参数

org.quartz.jobStore.tablePrefix

该参数为配置集群任务表表名前缀,应用会通过该参数来检查对应任务表中是否有待执行任务。该参数为重要参数。

2.3     数据库表

 

2.4     新增任务

n  访问需要执行该定时任务节点,在任务管理功能项下新增

n  SQL脚本方式新增

 

2.5     应用实列

  1. 现有应用架构为6活双中心应用,要求所有定时任务只在业务区A执行,业务区B不参与定时任务执行,配置如下:

 

                          (业务区A)

 

                          (业务区B)

 

  1. 数据库表要求,业务区A任务相关表名需要以 A_QRTZ_为前缀

              业务区B任务相关表名需要以 B_QRTZ_为前缀