Skip to content

scheduler

qifeng dai edited this page Mar 27, 2017 · 38 revisions

这里主要涉及到工作流的调度配置相关的 API。

1.增加调度配置

说明:对该工作流所属项目 "有执行权限的用户和项目所有者" 可以配置调度信息。

POST    /projects/:project-name/workflows/:workflow-name/schedules
Parameters: schedule={schedule}&notifyType={notifyType}&maxTryTimes={maxTryTimes}&failurePolicy={failurePolicy}&depWorkflows={depWorkflows}&depPolicy={depPolicy}&timeout={timeout}
  
Response:
Status: 201 Created
{
  "projectName": "bdi",
  "workflowName": "bdi_base_workflow",
  "schedule": {
    "startDate": 1468391778000,
    "endDate": null,
    "crontab":"0 8 * * * * ?"
  },
  "desc":"schedule desc",
  "notifyType": "FAILURE",
  "notifyMails": ["[email protected]"],
  "maxTryTimes": 2,
  "failurePolicy": "END",
  "depWorkflows": [{"projectName":"xxx", "workflowName":"yyy"}, ...],
  "depPolicy": "NO_DEP_PRE",
  "timeout": 3600,
  "createTime": 1468391778000,
  "modifyTime": 1468391778000,
  "owner": "bdi_user"
}

请求参数:

参数 类型 是否必选 描述 说明
schedule jsonObject 调度周期信息
notifyType enum 报警类型 SUCCESS-成功发,FAILURE-失败发,ALL-成功或失败都发,NONE-都不发, 注意大小写不敏感, 默认是 None
notifyMails jsonArray 报警邮箱列表 报警的邮件列表,如果 notifyType 不是 NONE,这个值是应该配置的
maxTryTimes int 失败重试次数 如果为 1 表示就运行一次, 默认为 1, 不重试
failurePolicy enum 失败之后的策略 END 停止所有的 node 运行,CONTINUE-尽量执行,默认为 END
depWorkflows jsonArray 工作流的依赖关系 默认没有依赖,示例:[{"projectName":"xxx", "workflowName":"yyy"}, ...]
depPolicy string 工作流依赖执行的策略 默认是 NO_DEP_PRE,不依赖上一调度周期,DEP_PRE 表示依赖
timeout int 超时时间,超时则发邮件 单位:秒

schedule 参数说明:

参数 类型 是否必选 描述 说明
startDate long 调度的起始时间 毫秒时间戳
endDate long 调度的结束时间 毫秒时间戳,没有结束时间表示长期有效
crontab string 定时调度配置 quartz 格式 0 8 * * * * ?, 参见: [[Quartz Cron 语法

注意:如果依赖的工作流不存在或被删除,不需要检测该前置条件

2.修改调度配置

说明:对该工作流所属项目 "有执行权限的用户和项目所有者" 可以修改调度配置。

PATCH    /projects/:project-name/workflows/:workflow-name/schedules

Response:
Status: 200 OK

请求和返回同上。

3.查询调度配置

说明:对该工作流所属项目 "有查看权限的用户和项目所有者" 可以查看调度配置信息。

GET /projects/:project-name/workflows/:workflow-name/schedules
  
Response:
Status: 200 OK
[
  {
    "projectName": "bdi",
    "workflowName": "bdi_base_workflow",
    "schedule": {
      "startDate": 1468391778000,
      "endDate": null,
      "crontab":"0 8 * * * * ?"
    },
    "desc":"schedule desc",
    "notifyType": "FAILURE",
    "notifyMails": ["[email protected]"],
    "maxTryTimes": 2,
    "failurePolicy": "END",
    "depWorkflows": [{"projectName":"xxx", "workflowName":"yyy"}, ...],
    "depPolicy": "NO_DEP_PRE",
    "timeout": 3600,
    "createTime": 1468391778000,
    "modifyTime": 1468391778000,
    "owner": "bdi_user"
  }
]

4.调度上线/下线

说明:对该工作流所属项目 "有执行权限的用户和项目所有者" 可将工作流调度上线/下线,注意需配置了调度信息才能上线。工作流的调度默认是下线状态的。

POST    /projects/:project-name/workflows/:workflow-name/schedules/online?
POST    /projects/:project-name/workflows/:workflow-name/schedules/offline?

Response:
Status: 200 OK
Clone this wiki locally