conductor服务编排http任务安排

# 文档
http://wiki.ttxit.com/pages/viewpage.action?pageId=25919490
# 编排
1.定义任务:http://localhost:8080/api/metadata/taskdefs
[{
  "name": "user_task",
  "retryCount": 3,
  "timeoutSeconds": 1200,
  "inputKeys": [
    "type"
  ],
  "outputKeys": [
    "id",
    "name"
  ],
  "timeoutPolicy": "TIME_OUT_WF",
  "retryLogic": "FIXED",
  "retryDelaySeconds": 600,
  "responseTimeoutSeconds": 3600
},
{
  "name": "group_task",
  "retryCount": 3,
  "timeoutSeconds": 1200,
  "inputKeys": [
    "id",
    "name"
  ],
  "outputKeys": [
    "response",
    "result"
  ],
  "timeoutPolicy": "TIME_OUT_WF",
  "retryLogic": "FIXED",
  "retryDelaySeconds": 600,
  "responseTimeoutSeconds": 3600
}
]
name    任务类型    唯一
retryCount    任务标记为失败时尝试重试的次数    -
retryLogic    重试机制
timeoutSeconds    以毫秒为单位的时间,在此之后,如果在转换到IN_PROGRESS状态后未完成任务,则将任务标记为TIMED_OUT    如果设置为0,则不会超时
timeoutPolicy    任务的超时策略
responseTimeoutSeconds    如果大于0,则在此时间之后未更新状态时,将重新安排任务。当work轮询任务但由于错误/网络故障而无法完成时很有用。    -
outputKeys    任务输出的键集。用于记录任务的输出
2.定义工作流:http://localhost:8080/api/metadata/workflow
{
  "name": "user_and_group",
  "description": "Encodes a file and deploys to CDN",
  "version": 1,
  "tasks": [
    {
      "name": "user_task",
      "taskReferenceName": "user",
      "inputParameters": {
            "http_request": {
                "method": "POST",
                "uri": "http://localhost:8000/user/getUser",
                "body": {
                    "type": "${workflow.input.type}"
                }
            }
        },
      "type": "HTTP"
    },
    {
      "name": "group_task",
      "taskReferenceName": "group",
      "inputParameters": {
            "http_request": {
                "method": "POST",
                "uri": "http://localhost:8010/group/getGroup",
                "body": {
                    "id": "${user.output.response.body.id}",
                    "name": "${user.output.response.body.name}"
                }
            }
      },
      "type": "HTTP"
    }
  ],
  "outputParameters": {
    "response": "${group.output.response.body.response}",
    "result": "${group.output.response.body.result}"
  },
  "schemaVersion": 2
}
3.任务执行:http://localhost:8080/api/workflow/{workname}
在body中定义参数:
{
"type":"1"
}
4.根据上一步返回的id获取任务信息:http://localhost:8080/api/workflow/{workid}:
输出内容:
{
"output": {
    "response": [
      "1",
      "2",
      "3",
      "4"
    ],
    "result": "李四gaga"
  }
}

你可能感兴趣的:(开发工具安装及其相关)