接口
说明
接口返回值json格式,格式为
code M int
msg M string
data O object
如: {"code":0,"msg":"success","data":{}}
时长单位默认为秒
jobTracker任务类接口(对外):
job/create 创建任务类
Method
POST
请求
name M string taskname,允许字符 A-Z a-z 0-9 .(dot) # /
retry O int 重试次数 默认为0
retry_interval O int 重试间隔 默认为1
desc M string 任务描述
timeout M int 任务超时时间
subtimeout O int 子任务超时时间,对于拆分的任务有效
parallelism O int 任务并行度,对于拆分的任务有效
cron O string 定时任务,规则同crontab
cron_count O int 定时任务运行次数限制
响应data:
id int 任务类别id
job/add 添加任务
Method: POST
请求:
name M string
input M string 入参,目前暂定最长4KiB
groupid M int
stationid M string
mutex_key O string 任务唯一标识,避免相同任务重复提交。默认将由后台生成一个全局唯一标识, 如避免同一个station提交重复任务: limit_key=stationid+name limit_key=name
delay_sec O int 执行时间延时时长,单位秒 。 实际执行时间会 资源等情况限制造成不确定的延时时间
delay_point O datetime 指定运行时间(YYYY-mm-dd HH:MM:SS)
user_data O string 用户自定义数据,类似business_name
响应data:
id M int 任务id
1. 针对任务/站点等条件 允许运行指定数量 系统配置? 业务配置?
2. sid/kid/stationid/groupid 限制个数 0作为特别处理
job/query?id 获取任务信息(状态,当前进度, 预计完成时间...)
job/query?station
Method
GET
请求:
id O int
user_taskid O string
station O string 当使用station时需要指定time
start_time O string YYYY-mm-dd HH:MM:SS
end_time O string YYYY-mm-dd HH:MM:SS
响应data:
array
id int
user_taskid string
station string
name string
status int
progress int
estimate int 预估完成时间,0为当前还没有进行预估
result string
说明:
请求参数id/user_taskid/station+time三选一
a. 如何避免跨站点获取任务信息(删除/取消也有同样问题)
方案1. taskid 非自增,足够的间距 uuid
方案2. 由业务决定 groupid/stationid/sid/kid 作为 ownerid
b. 现有逻辑默认查询最近24小时任务, 大于24小时的即使未完成也无法查询到
c. 当前添加暂停功能,很可能会出现超过24小时为完成的任务
job/hide?id 隐藏任务
Method
POST
请求
id M list-int
station M int
响应data
null
job/hide?station 隐藏任务(目前使用方式,存在所见并非所得) 可以不实现
Method
POST
请求
id O list-int
station M int
ctime O int
响应data
null
job/cancel 任务取消(不可恢复)
请求:
id M int
响应data:
job/suspend 任务暂停执行
请求:
id M int
响应data:
job/resume 任务暂停后恢复执行
请求:
id M int
响应data:
job/nexttime 任务未来执行时间 (延时任务和定时任务有效)
请求:
id M int
响应data:
time list-int 多个时间点
jobTracker(内部)对agent接口:
inner/job/get 获取可执行任务
请求:
key M string 任务名匹配规则,如:aaa* , bbb*aaa
响应data:
stage int 任务阶段
name string
input string
groupid int
stationid int
job/result
请求:
id M int
type O int 1: split任务完成,将创建子任务
result M string
stderr O string
stdout O string
job/update/status 更新状态
暂时不提供
job/update/progress 更新进度
暂时不提供
report/node 节点状态上报
暂时不提供
report/task 任务状态上报
暂时不提供
agent 接口
task/update/status 更新状态
暂时不提供
task/update/progress 更新进度
暂时不提供
task/result 任务执行结果
暂时不提供
(非关键接口)
jobTracker运维操作(对外):
op/status 全体任务监控(当前在执行任务数量,队列中等, 超时之类) ----
op/redo 任务(失败/成功后)再次执行
op/logs 任务日志(stdout/stderr/expect)
op/limit 限制(并发/cpu等)
op/pause 暂停某类任务执行 (允许基于监控系统自动进行)
op/analysis 数据统计分析等(执行次数,延时,性能消耗等)
额外的: 任务终结,操作记录?
测试: 系统任务+用户任务