任务模板

功能概述

主要提供系统管理员针对流水线应用发布配置服务参数定义,在这里配置的服务参数定义,供流水线任务模板中的流程定义进行选择使用;

此处除目前系统提供的服务参数定义外,如要增加配置,需要对devops组件扩展对应接口后,在此功能中配置才能使用,具体接口扩展开发参考详细开发文档内容;

最终在流水线模板中使用时,会依据选择的任务模板加上配置项的内容来生成对应的流水线环节定义。

  1. 使用有系统管理员角色进入控制台,打开配置模板管理功能

  2. 对已配置好的文件,点击列表操作中的编辑,可对配置文件内容进行修改操作

  3. 如需要增加配置文件,则点击新建按钮,打开服务定义编辑页面进行配置内容添加

    编码: 填写该任务模板的编码,内容仅支持英文和数字

    名称: 填写该任务模板的名称,内容支持中文

    分类: 填写该任务模板的分类名称

    标签: 填写该任务模板的标签内容

    定义内容格式: 填写该任务模板具体的请求内容,这里以拉取代码环节举例

    [
      {
        "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"
           }        
       }
   }
  1. 此处配置的服务参数定义,在任务模板流程定义中供环节服务选择,如图

results matching ""

    No results matching ""