任务模板
功能概述
主要提供系统管理员针对流水线应用发布配置服务参数定义,在这里配置的服务参数定义,供流水线任务模板中的流程定义进行选择使用;
此处除目前系统提供的服务参数定义外,如要增加配置,需要对devops组件扩展对应接口后,在此功能中配置才能使用,具体接口扩展开发参考详细开发文档内容;
最终在流水线模板中使用时,会依据选择的任务模板加上配置项的内容来生成对应的流水线环节定义。
对已配置好的文件,点击列表操作中的编辑,可对配置文件内容进行修改操作
如需要增加配置文件,则点击新建按钮,打开服务定义编辑页面进行配置内容添加
编码: 填写该任务模板的编码,内容仅支持英文和数字
名称: 填写该任务模板的名称,内容支持中文
分类: 填写该任务模板的分类名称
标签: 填写该任务模板的标签内容
定义内容格式: 填写该任务模板具体的请求内容,这里以拉取代码环节举例
[ { "body": { "jobName": "拉取代码", "jobDescription": "拉取代码-pullCode-${sData1}-${sData2}", "request": [ { "method": "GET", "url": "${devopsURL}/main/pipeline/getconsolesession?pipeLineId=${pipeLineId}" }, { "method": "POST", "body": { "jobId": "${schedulingJobId}", "executeNumber": "${schedulingExecuteNumber}", "requestCounts": "${schedulingRequestCounts}", "pipelineId": "${pipeLineId}", "pipelineExecuteId": "${sData1}", "feedbackUrl": "${schedulingFeedbackUrl}", "consoleSession": "${$.data}", "devopsManagerAddress": "${devopsManagerAddress}" }, "url": "${ideURL}/devops/pullCode" } ], "active": 1, "async": true, "jobId": "${sData1}-${sData2}-pullCode", "parentJob": "${sData1}", "parentJobExecution": "${sData2}", "creator": "${creator}", "creatorName": "${creatorName}", "notification": [ { "headers": { "X-Credential-Token": "${credentialToken}" }, "method": "POST", "body": { "task": "${task}" }, "stateEquals": "finalFailed", "url": "service://wf/biz/process/abort" }, { "headers": { "X-Credential-Token": "${credentialToken}" }, "method": "POST", "body": { "$ref": "$[0].body.notification[0].body" }, "stateEquals": "finalSucceed", "url": "service://wf/biz/process/advance" }, { "method": "POST", "body": { "data": "${schedulingNotifyBody}|json", "taskName": "拉取代码" }, "url": "${devopsURL}/main/wfmanage/callbackmsg?taskCode=pullCode&pipelineId=${pipeLineId}&pipelineExecuteId=${sData1}&schedulingJobId=${schedulingJobId}&schedulingExecuteNumber=${schedulingExecuteNumber}&finalTask=" } ], "qos": 0, "timeoutSeconds": 60, "checkRateSeconds": 4, "retry": [ { "maxAttempts": 3, "backoffRate": 1, "errorEquals": "500", "intervalSeconds": 3 }, { "maxAttempts": 3, "backoffRate": 1, "errorEquals": "timeout", "intervalSeconds": 3 }, { "maxAttempts": 3, "backoffRate": 1, "errorEquals": "404", "intervalSeconds": 3 } ] }, "method": "POST", "url": "service://scheduling/jobs/${sData1}-${sData2}-pullCode", "extend":[{ "formType":"url", "formUrl":"$UI/pcx/pipeLine/liushui_ly.w", "formName":"代码拉取设置" }] } ]
字段说明:
字段 | 字段说明 | 是否必填/类型 | 备注 |
---|---|---|---|
body | 请求的body内容 | 是、jsonobject | 说明详见下面 |
method | 请求方式 | 是、String | |
url | 请求地址 | 是、String | |
extend | 扩展字段,这里主要用来设置该流水线环节对应的设置界面 | 否、String |
body内参数说明
字段 | 字段说明 | 是否必填/类型 | 备注 |
---|---|---|---|
jobId | 任务ID,也就是 actorID,一个job就是一个actor | 是、String、path | |
jobName | 任务名字 | 是、String、body | |
jobDescription | 任务描述 | 否、String、body | |
creator | 调用者,id或唯一标识 | 是、String、body | |
creatorName | 调用者名 | 是、String、body | |
notification | 通知调用者client配置 | 否、JSON array、body | 这里用到URL模版,需事先约定 |
active | 1——调度执行 (默认)0——不调度执行,不销毁actor,只做time、reminder、cron下线 | 是、int、body | 通过put更新该参数暂停调度 |
timer | 调度策略:见下方 | 否、String、body | 不支持liteJob |
request | 调用中心触发任务服务执行的URL:这里有两种调用模式同步和异步,如果是异步,那么我们对目标任务服务的执行进度和状态,有两种获取方式:1. 调度中心轮询目标任务服务指定的URL获取数据2.目标任务服务回调调度中心暴露的URL进行通知 | 是、array JSON、body | 这里用到的URL模版,需事先约定 |
async | 是否异步:true——异步请求false——同步请求(默认) | 否、Boolean、body | |
checkUrl | 调度中心轮询任务服务的URL:调度中心就会请求checkUrl轮询获取任务服务的执行进度和状态。如果checkUrl存在,那么异步回调不会走到feedbackUrl | 否、String、body | 这里用到的URL模版,需事先约定 |
checkRateSeconds | check检查轮询的周期或频率,单位s,默认1s | 否,int、body | |
timeoutSeconds | job 任务超时时间:调度中心调用目标任务服务的超时时间,单位s,默认60s。如果异步与checkurl或feedbackUrl时长有关如果同步它既是连接超时和读取超时 | 否、int、body | 详情在下方说明 |
retry | 重试策略 | 否,array JSON、body | |
qos | 质量保证0——》正常保证1——》保证高可靠 | 不支持liteJob |
extend参数说明:
这是一个json数组,可以一个任务模板可以对应多个设置页面。这里设置的页面是在流水线编辑时显示的页面。
字段 | 字段说明 | 是否必填/类型 | 备注 |
---|---|---|---|
formType | 页面类型 | 是、String | 目前主要支持url |
formUrl | 页面URL | 是、String | |
formName | 页面名称 | 是、String |
参数格式:填写该任务模板对应的参数界面配置,这里采用的是json schema的方式来定义一个参数的配置界面,具体的参数含义可以查阅标准json schema文档。
{
"ui:labelWidth": 180,
"type": "object",
"properties": {
"finalTask": {
"title": "是否为最终环节",
"type": "oolean",
"default": false,
"enum": [
true,
false
],
"enumNames": [
"是",
"否"
],
"widget": "select"
}
}
}