scheduler.md 3.9 KB

数据模型


  1. 任务配置,用于描述一个具体的任务配置信息

  2. 执行记录,用于描述一个任务的具体的一次执行过程

系统说明


  1. 任务调度的最小时间间隔是5秒,暂不支持频率要求快于5秒的场景

  2. 任务配置完成后,满足以下条件的任务会被触发:

    1. 状态为待执行且达到下次执行时间的

    2. 状态为执行中且达到上次执行的过期时间的

  3. 任务触发后更新任务的下次执行时间、本次任务的过期时间,然后生成执行记录

  4. 根据执行方式的配置来调起相关的服务,同时会将集团编码、应用编码、项目ID、任务编码、调起参数,执行记录ID作为参数

  5. 被调度方根据执行结果和执行记录ID来更新执行记录

执行方式说明及对应的约束和配置参数说明:

http方式的约束条件

被调度方需保证url对应接口在200毫秒内执行完毕
若不能保证,需要被调用方做异步处理,待异步执行完成后根据执行记录id更新执行记录结果

http方式的配置参数说明

{
	"url": "被调度方提供的访问地址,POST方式,参数会放在requestbody里面"
}

jms方式说明

根据配置信息,将参数封装为消息对象采用topic方式发送到rabitmq
被调度方监听配置的rabitmq队列

jms方式的配置参数说明

{
	"exchange": "",
	"routingKey": ""
}

数据结构


任务配置
字段 字段名称 类型 非空 备注
id ID varchar(40) Y 全局唯一
group_code 所属集团编码 varchar(20)
app_code 应用编码 varchar(40)
project_id 项目ID varchar(40)
code 任务编码 varchar(20) Y
name 任务名称 varchar(40) Y
remark 备注 varchar(200)
status 状态 bit Y 任务状态:0停用,1待执行,2执行中,3暂停
type 执行方式 varchar(20) Y 调起方式:http,jms
config 执行方式配置参数 json Y
params 调起参数 json Y
cron cron表达式 varchar(40) Y
next_time 下次执行时间 datetime Y
time_out 超时时间(秒) int Y
expire_time 上次执行任务的过期时间 datetime
任务执行记录
字段 字段名称 类型 非空 备注
id ID varchar(40) Y 全局唯一
task_id 任务ID varchar(40) Y
start_time 开始时间 datetime
end_time 结束时间 datetime
success 是否正常结束 bit Y 1是,0否,否表示发生了异常
error_info 错误信息 json Y

接口清单

1.保存任务配置(创建、更新)

2.保存执行记录(更新)