Skip to content

接口


说明

接口返回值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 数据统计分析等(执行次数,延时,性能消耗等)

额外的: 任务终结,操作记录?

测试: 系统任务+用户任务