任务调度系统 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. ### 数据模型
  2. ***
  3. 1. 任务配置,用于描述一个具体的任务配置信息
  4. 1. 执行记录,用于描述一个任务的具体的一次执行过程
  5. ### 系统说明
  6. ***
  7. 1. 任务调度的最小时间间隔是5秒,暂不支持频率要求快于5秒的场景
  8. 1. 任务配置完成后,满足以下条件的任务会被触发:
  9. 1. 状态为待执行且达到下次执行时间的
  10. 1. 状态为执行中且达到上次执行的过期时间的
  11. 1. 任务触发后更新任务的下次执行时间、本次任务的过期时间,然后生成执行记录
  12. 1. 根据执行方式的配置来调起相关的服务,同时会将集团编码、应用编码、项目ID、任务编码、调起参数,执行记录ID~~等~~作为参数
  13. 1. 被调度方根据执行结果和执行记录ID来更新执行记录
  14. 执行方式说明及对应的约束和配置参数说明:
  15. http方式的约束条件
  16. ```text
  17. 被调度方需保证url对应接口在200毫秒内执行完毕
  18. 若不能保证,需要被调用方做异步处理,待异步执行完成后根据执行记录id更新执行记录结果
  19. ```
  20. http方式的配置参数说明
  21. ```json
  22. {
  23. "url": "被调度方提供的访问地址,POST方式,参数会放在requestbody里面"
  24. }
  25. ```
  26. jms方式说明
  27. ```text
  28. 根据配置信息,将参数封装为消息对象采用topic方式发送到rabitmq
  29. 被调度方监听配置的rabitmq队列
  30. ```
  31. jms方式的配置参数说明
  32. ```json
  33. {
  34. "exchange": "",
  35. "routingKey": ""
  36. }
  37. ```
  38. ### 数据结构
  39. ***
  40. | 任务配置 | | | | |
  41. | ----------- | ----------- | ------------ | --- | ---------------------- |
  42. | 字段 | 字段名称 | 类型 | 非空 | 备注 |
  43. | id | ID | varchar(40) | Y | 全局唯一 |
  44. | group_code | 所属集团编码 | varchar(20) | | |
  45. | app_code | 应用编码 | varchar(40) | | |
  46. | project_id | 项目ID | varchar(40) | | |
  47. | code | 任务编码 | varchar(20) | Y | |
  48. | name | 任务名称 | varchar(40) | Y | |
  49. | remark | 备注 | varchar(200) | | |
  50. | status | 状态 | bit | Y | 任务状态:0停用,1待执行,2执行中,3暂停 |
  51. | type | 执行方式 | varchar(20) | Y | 调起方式:http,jms |
  52. | config | 执行方式配置参数 | json | Y | |
  53. | params | 调起参数 | json | Y | |
  54. | cron | cron表达式 | varchar(40) | Y | |
  55. | next_time | 下次执行时间 | datetime | Y | |
  56. | time_out | 超时时间(秒) | int | Y | |
  57. | expire_time | 上次执行任务的过期时间 | datetime | | |
  58. | | | | | |
  59. | 任务执行记录 | | | | |
  60. | ---------- | ------ | ----------- | --- | -------------- |
  61. | 字段 | 字段名称 | 类型 | 非空 | 备注 |
  62. | id | ID | varchar(40) | Y | 全局唯一 |
  63. | task_id | 任务ID | varchar(40) | Y | |
  64. | start_time | 开始时间 | datetime | | |
  65. | end_time | 结束时间 | datetime | | |
  66. | success | 是否正常结束 | bit | Y | 1是,0否,否表示发生了异常 |
  67. | error_info | 错误信息 | json | Y | |
  68. | | | | | |
  69. ### 接口清单
  70. 1.保存任务配置(创建、更新)
  71. 2.保存执行记录(更新)