-
Notifications
You must be signed in to change notification settings - Fork 18
scheduler
caojingwei edited this page Jun 19, 2017
·
38 revisions
这里主要涉及到工作流的调度配置相关的 API。
说明:对该工作流所属项目 "有执行权限的用户和项目所有者" 可以配置调度信息。调度配置如果已经存在,则增加失败。
POST /projects/:project-name/workflows/:workflow-name/schedules
Parameters: schedule={schedule}¬ifyType={notifyType}¬ifyMails={notifyMails}&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":"workflow 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 | enum | 否 | 工作流依赖执行的策略 | 默认是 NO_DEP_PRE ,不依赖上一调度周期,DEP_PRE 表示依赖 |
timeout | int | 否 | 超时时间,超时则发邮件 | 单位: 秒, 默认为: 1800, 有效值 (0,43200] |
schedule 参数说明:
参数 | 类型 | 是否必选 | 描述 | 说明 |
---|---|---|---|---|
startDate | long | 是 | 调度的起始时间 | 毫秒时间戳 |
endDate | long | 否 | 调度的结束时间 | 毫秒时间戳,没有结束时间表示长期有效 |
crontab | string | 是 | 定时调度配置 | quartz 格式 0 8 * * * * ?, 参见: [[Quartz Cron 语法 |
注意:如果依赖的工作流不存在或被删除,不需要检测该前置条件。
说明:对该工作流所属项目 "有执行权限的用户和项目所有者" 可以修改调度配置。调度配置如果不存在,则增加。注意必选参数不能为空。
PUT /projects/:project-name/workflows/:workflow-name/schedules
Response:
Status: 200 OK
返回同上。
说明:对该工作流所属项目 "有执行权限的用户和项目所有者" 可以修改调度配置。调度配置如果不存在,则修改失败。
PATCH /projects/:project-name/workflows/:workflow-name/schedules
Response:
Status: 200 OK
请求说明:所有参数都是可选的。
请求和返回同上。
说明:对该工作流所属项目 "有执行权限的用户和项目所有者" 可将工作流调度上线/下线,注意需配置了调度信息才能上线。工作流的调度默认是下线状态的。
POST /projects/:project-name/workflows/:workflow-name/schedules/online?
POST /projects/:project-name/workflows/:workflow-name/schedules/offline?
Response:
Status: 201 Created
说明:对该工作流所属项目 "有查看权限的用户和项目所有者" 可以查看调度配置信息。
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",
"scheduleStatus": 0 // 0 means offline, 1 means online
}
]
说明:对所属项目 "有查看权限的用户和项目所有者" 可以查看所有调度配置信息。
GET /projects/:project-name/workflows/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",
"scheduleStatus": 0 // 0 means offline, 1 means online
}]
]
注意:返回的 scheduleStatus
,0 表示下线状态,1 表示上线状态。