123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- ### 数据模型
- ***
- 1. 任务配置,用于描述一个具体的任务配置信息
- 1. 执行记录,用于描述一个任务的具体的一次执行过程
- ### 系统说明
- ***
- 1. 任务调度的最小时间间隔是5秒,暂不支持频率要求快于5秒的场景
- 1. 任务配置完成后,满足以下条件的任务会被触发:
- 1. 状态为待执行且达到下次执行时间的
- 1. 状态为执行中且达到上次执行的过期时间的
- 1. 任务触发后更新任务的下次执行时间、本次任务的过期时间,然后生成执行记录
- 1. 根据执行方式的配置来调起相关的服务,同时会将集团编码、应用编码、项目ID、任务编码、调起参数,执行记录ID~~等~~作为参数
- 1. 被调度方根据执行结果和执行记录ID来更新执行记录
- 执行方式说明及对应的约束和配置参数说明:
- http方式的约束条件
- ```text
- 被调度方需保证url对应接口在200毫秒内执行完毕
- 若不能保证,需要被调用方做异步处理,待异步执行完成后根据执行记录id更新执行记录结果
- ```
- http方式的配置参数说明
- ```json
- {
- "url": "被调度方提供的访问地址,POST方式,参数会放在requestbody里面"
- }
- ```
- jms方式说明
- ```text
- 根据配置信息,将参数封装为消息对象采用topic方式发送到rabitmq
- 被调度方监听配置的rabitmq队列
- ```
- jms方式的配置参数说明
- ```json
- {
- "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.保存执行记录(更新)
|