xxl-job分布式定时任务nacos升级设计文档
设计思想
xxl-job分布式定时任务nacos升级改造目前是基于xxl-job v2.2.0版本进行改造,xxl-job主体设计思想是将调度行为抽象形成"调度中心"公共平台,而平台本身并不承担业务逻辑,"调度中心"负责发起调度请求。将任务抽象成分散的JobHandler,交由"执行器"统一管理,"执行器"负责接收调度请求并执行对应的JobHandler中的业务逻辑。"调度"和"任务"两部分可以相互解耦,提高系统的稳定性和扩展性。
系统组成
调度模块(调度中心):
负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码,调度系统与任务解耦,提高了系统的稳定性和扩展性,同时调度系统的性能不在受限于任务模块,支持可视化、简单动态的管理调度信息,包括任务新建,更新,删除,GLUE开发和任务报警等,这些操作都能实时生效,并且同时支持监控调度结果及执行日志,支持执行器的Failover。
执行模块(执行中心):
负责接收调度中心请求并执行任务逻辑,任务模块专注与任务的执行等操作,开发和维护更加简单和高效,执行模块主要功能点:接收"调度中心"的执行请求、终止请求和日志请求等。
架构设计
架构图
nacos服务注册及服务调用流程
统一任务平台多数据中心服务路由
运营门户操作统一任务管理平台,通过选定资源池对应的数据中心发起定时任务的远程调度,实现定时任务多数据中心统一操作控制,运营门户根据登入用户获取资源池的请求地址发送http调用。
相关接口文档设计
获取执行器列表信息
参数描述
参数名
类型
是否必填
描述
appname
String
否
执行器AppName
title
String
否
执行器名称
pageNum
int
否,默认值为1
起始页
pageSize
int
否,默认值为10
每页显示数
返回值
{
"recordsFiltered": 2,
"data": [{
"id": 1,
"appname": "xxl-job-executor-sample",
"title": "示例执行器",
"addressType": 0,
"addressList": "",
"registryList": null
}, {
"id": 2,
"appname": "xxl-job-executor-sample-springCloud",
"title": "测试执行器",
"addressType": 0,
"addressList": "xxl-job-executor-sample-springCloud",
"registryList": ["xxl-job-executor-sample-springCloud"]
}],
"recordsTotal": 2
}
返回值参数说明
参数名
描述
id
执行器主键
appname
执行器AppName
title
执行器名称
addressType
执行器地址类型:0=自动注册、1=手动录入
registryList
执行器地址列表
获取执行器对应的任务列表
参数描述
参数名
类型
是否必填
描述
jobGroup
int
是
执行器ID
triggerStatus
int
否,默认值为-1查询所有,0-停止,1-运行
调度状态
jobDesc
String
否
任务描述信息
executorHandler
String
否
执行器任务handler
author
String
否
任务发布者
pageNum
int
否,默认值为1
起始页
pageSize
int
否,默认值为10
每页显示数
返回值
{
"recordsFiltered": 1,
"data": [{
"id": 1,
"jobGroup": 2,
"jobCron": "0/10 * * * * ? *",
"jobDesc": "测试任务",
"addTime": "2018-11-03T14:21:31.000+0000",
"updateTime": "2020-05-19T14:45:35.000+0000",
"author": "XXL",
"alarmEmail": "",
"executorRouteStrategy": "FIRST",
"executorHandler": "demoJobHandler",
"executorParam": "",
"executorBlockStrategy": "SERIAL_EXECUTION",
"executorTimeout": 0,
"executorFailRetryCount": 0,
"glueType": "BEAN",
"childJobId": "",
"triggerStatus": 0
}],
"recordsTotal": 1
}
返回值参数说明
参数名
描述
jobGroup
执行器主键ID
jobCron
任务执行CRON
jobDesc
任务描述
author
任务负责人
glueType
GLUE类型
executorHandler
执行器任务han