任务调度 RuQi(如期)
1 架构
高可用部署如期,ruqi1 和 ruqi2 均为 butterfly 应用,ruqi1 和 ruqi2 分别部署在两台不同的机器上
+---------------+ +---------------+
| ruqi1 | | ruqi2 |
+------+--------+ +-------+-------+
| |
| |
| |
+----V-------------------------V---+
| MySQL |
+----------------------------------+如期可提供定时、周期性执行 python/shell 脚本、发送 HTTP POST 请求、发布百川任务的功能
2 部署
2.1 建表
2.2 配置
2.2.1 <butterfly_project>/conf/servicer/db_ruqi.py
可以选择 `redirect://` 方式重定向到别的配置,若存在 db_ruqi 配置,则不会读取 conf/config.py 配置
2.2.2 <butterfly_project>/conf/config.py
2.3 应用
3 接口
3.1 调度任务接口
3.1.1 增加任务
周期任务
eg: 每 10s 向百川中添加一次 /demo_api/hello 的请求
延迟任务
eg: 任务 1 小时后再发起执行
例子,延时发起星桥任务
3.1.2 删除任务
POST /ruqi/job_remove
Headers
Content-Type
application/json
Authorization
Bearer <token>
Body
job_id
string
job_id
Response
3.1.3 修改任务
POST
参数说明
3.1.4 暂停任务
POST
3.1.5 恢复暂停的任务
POST
3.1.6 job 列表
GET /ruqi/job_lis
Headers
Content-Type
application/json
Authorization
Bearer <token>
Params
job_id
string
[可选] job id
job_name
string
[可选] job name
page_index
int
[可选] 页码,如不传,则返回全部数据
page_size
int
[可选] 默认值 15
Response
3.1.7 job 详情
GET /ruqi/job_show
Headers
Content-Type
application/json
Authorization
Bearer <token>
Params
job_id
string
job id
Response
3.2 调度历史接口
3.2.1 调度历史列表
GET
参数说明
3.2.2 调度历史清理
POST /ruqi/job_history_clear
添加每天清理一次历史任务,默认保留 180 天,可以新增参数修改保留天数
python test_handler.py /ruqi/job_add_by_line "1d python test_handler.py /ruqi/job_history_clear"
3.3 调度引擎接口
3.3.1 调度器状态
GET /ruqi/scheduler_status
Headers
Content-Type
application/json
Authorization
Bearer <token>
Response
3.3.2 调度器唤醒
POST /ruqi/scheduler_wakeup
Headers
Content-Type
application/json
Authorization
Bearer <token>
Response
4 FAQ
4.1 MySQL URL 是无效地址
启动 butterfly 失败,<butterfly_project>/__stdout 日志里会有报错信息
4.2 MySQL URL 没有权限
启动 butterfly 成功,定时任务调度器会启动失败,<butterfly_project>/logs/err.log 会报 self._scheduler.start() 失败
5 最佳实践
Last updated