# 任务调度

## 数据结构

### 任务调度配置

| 参数名       | 类型     | 必填 | 描述                                     | 默认值 | 备注                                     |
| ------------ | -------- | ---- | ---------------------------------------- | ------ | ---------------------------------------- |
| id           | String   | Y    |                                          | UUID   | 新建时如果为空,则默认为UUID             |
| groupCode    | String   |      | 所属集团编码                             |        |                                          |
| appId      | String   |      | 应用编码                                 |        |                                          |
| projectId    | String   |      | 项目ID                                   |        |                                          |
| code         | String   | Y    | 任务编码                                 |        |                                          |
| name         | String   | Y    | 任务名称                                 |        |                                          |
| type         | String   | Y    | 执行方式                                 |        | http 或者 jms                            |
| config       | Json     | Y    | 执行方式配置参数                         |        |                                          |
| params       | Json     | Y    | 调起参数                                 |        |                                          |
| timeRule     | Json     | Y    | 调起频率                                 |        |                                          |
| startTime    | datetime |      | 开始时间                                 |        |                                          |
| endTime      | datetime |      | 结束时间                                 |        |                                          |
| responseTime | datetime | Y    | 任务接口的处理时长,用于任务启停消峰控制 |        | 任务接口的处理时长,用于任务启停消峰控制 |
| level        | String   | Y    | 优先级                                   |        | 用于任务启停消峰控制                     |
| remark       | String   |      | 备注                                     |        |                                          |

##### 字段保存格式规则说明

```json
time_rule: cron表达式,和triggerStartTime必须存在其一
{
  "triggerStartTime":"任务通知的开始日期,格式:时间戳,当cron为空时,必须存在",
  "triggerEndTime":"任务通知的结束日期,格式:时间戳",
  "intervalTime":"数值型,任务上下两次通知的间隔时间,单位:秒",
  "repeatCount":"数值型,任务通知次数(不包含任务启动的那一次)当其大于0时,intervalTime也必须大于0",
  "cron":"cron表达式",
  "alarmEmail":"报警邮箱"
}

config:
{
  "queue": "",
  "exchange": "",
  "routing": ""
}

params
{
  "": ""
}
```

### 任务执行记录

| 字段       | 字段名称     | 类型        | 非空 | 备注                       |
| ---------- | ------------ | ----------- | ---- | -------------------------- |
| 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    |                            |
|            |              |             |      |                            |