认识
社区:https://www.xuxueli.com/xxl-job/
文档:https://www.xuxueli.com/xxl-job/
仓库:https://github.com/xuxueli/xxl-job
A distributed task scheduling framework.(分布式任务调度平台 XXL-JOB),XXL-JOB 是一个分布式任务调度平台,其核心设计目标是开发迅速)学习简单)轻量级)易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
组成
针对“调度”和“任务”两部分,可以相互解耦,以提高系统整体稳定性和扩展性:
- 将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。
- 将任务抽象成分散的 JobHandler,交由“执行器”统一管理,“执行器”负责接收调度请求并执行对应的 JobHandler 中业务逻辑。
在实际的部署应用中,其大致过程为:(1)首先,部署调度中心服务,(2)然后,在代码中引入执行器类库,编码实现具体的任务功能。(3)启动执行器,执行器将自己注册到调度中心,调度中心将根据执行器的配置来定时调度任务。
调度模块(调度中心,xxl-job-admin)
负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块;
支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,GLUE 开发和任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志,支持执行器 Failover。
执行模块(执行器,xxl-job-core)
负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效;
接收“调度中心”的执行请求、终止请求和日志请求等。
执行器 Sample 示例
其是官方提供的执行器实例,用于提供参考。
构造
WIP
性质
参考 分布式任务调度平台 XXL-JOB/1.3 特性 页面,以了解更多特性。
- 简单:支持通过 Web 页面对任务进行 CRUD 操作,操作简单,一分钟上手;
- 动态:支持动态修改任务状态)启动 / 停止任务,以及终止运行中任务,即时生效;
- 调度中心 HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心 HA;
- 执行器 HA(分布式):任务分布式执行,任务”执行器”支持集群部署,可保证任务执行 HA;
- 注册中心: 执行器会周期性自动注册任务,调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
- 弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;
- 触发策略:提供丰富的任务触发策略,包括:Cron 触发)固定间隔触发)固定延时触发)API(事件)触发)人工触发)父子任务触发;
- 调度过期策略:调度中心错过调度时间的补偿处理策略,包括:忽略)立即补偿触发一次等;
- 阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认))丢弃后续调度)覆盖之前调度;
- ……
应用
应用访问调度中心
调度中心部署根地址 [选填]:如调度中心集群部署存在多个地址,则用逗号分隔。执行器将会使用该地址进行”执行器心跳注册”和”任务结果回调”;为空,则关闭自动注册;
xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
管理帐号密码重置
配置文件里面写账号密码一点用都没,并且直接从数据库中修改也是不起作用的,只能用默认密码(amdin/123456)登陆 web 页面,然后右上角点击修改密码(采用 MD5 加密),或者直接数据库中修改密码(采用 MD5 算法 32 位小写加密),这样才有用。