任务配置,用于描述一个具体的任务配置信息
执行记录,用于描述一个任务的具体的一次执行过程
任务调度的最小时间间隔是5秒,暂不支持频率要求快于5秒的场景
任务配置完成后,满足以下条件的任务会被触发:
状态为待执行且达到下次执行时间的
状态为执行中且达到上次执行的过期时间的
任务触发后更新任务的下次执行时间、本次任务的过期时间,然后生成执行记录
根据执行方式的配置来调起相关的服务,同时会将集团编码、应用编码、项目ID、任务编码、调起参数,执行记录ID等作为参数
被调度方根据执行结果和执行记录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.保存执行记录(更新)