目录

调度一致性

执行器路由选择策略


调度一致性

所谓的调度一致性,是指保证一次任务调度只有一个机器来执行,而不会因为其是分布式部署而出现多台机器同时执行某一个job。

在xxl-job中实现分布式锁用的数据库的分布式锁,其中一个表只存储表的名称,通过 for update 来查询锁。

1):conn.setAutoCommit(false); 关闭隐式提交。

2):select * from xxl_job_lock where lock preparedStatement.execute(); 获得显示排他锁,然后开启事务。

3):conn.commit(); 事务完毕后,提交。

4):preparedStatement.close(); 释放悲观锁开启下一次轮回。

代码在:JobScheduleHelper

执行器路由选择策略

路由策略:当执行器集群部署时,提供丰富的路由策略,包括:

FIRST(第一个):固定选择第一个机器;

LAST(最后一个):固定选择最后一个机器;

ROUND(轮询):;

RANDOM(随机):随机选择在线的机器;

CONSISTENT_HASH(一致性HASH):每个任务按照Hash算法固定选择某一台机器,且所有任务均匀散列在不同机器上。

LEAST_FREQUENTLY_USED(最不经常使用):使用频率最低的机器优先被选举;

LEAST_RECENTLY_USED(最近最久未使用):最久未使用的机器优先被选举;

FAILOVER(故障转移):按照顺序依次进行心跳检测,第一个心跳检测成功的机器选定为目标执行器并发起调度;

BUSYOVER(忙碌转移):按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度;

SHARDING_BROADCAST(分片广播):广播触发对应集群中所有机器执行一次任务,同时系统自动传递分片参数;可根据分片参数开发分片任务;

路由策略:第一个(我们采用的策略)

运行模式:BEAN

阻塞处理策略:单机串行

GitHub 加速计划 / xx / xxl-job
27.16 K
10.79 K
下载
xxl-job: 是一个分布式任务调度平台,核心设计目标是开发迅速、学习简单、轻量级、易扩展。
最近提交(Master分支:3 个月前 )
e5d26ba2 - 4 个月前
977ad87b - 4 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐