6.2. task相关
task
获取流程的任务
请求方式:GET
请求路径:/task?processInstanceId=2910431
请求参数:
参数 | 必须 | 说明 |
---|---|---|
processInstanceId | 是 | 流程ID(activiti) |
返回结果:
[{
"id": "c91b3868-801e-43a3-b77a-9bddff26f671",
"processInstanceId": "2910431",
"taskId": "2912516",
"name": "machine",
"namespace": "machine",
"stone": "MachineStone",
"createTime": "2018-08-06 14:27:48",
"endTime": "2018-08-06 14:28:31",
"status": "monitor.success",
"reason": null,
"params": "{\"namespace\":\"machine\",\"outputParams\":\"[{\\\"serviceId\\\":\\\"68bd2483-3d2c-4112-9150-9770da000836\\\",\\\"serviceType\\\":\\\"Instance\\\",\\\"outputId\\\":\\\"OUTPUT19763363\\\"}]\",\"regionId\":\"701\",\"stackresult\":[{\"serviceType\":\"Instance\",\"resourceCode\":\"i-2E2B1F54\",\"serviceId\":\"68bd2483-3d2c-4112-9150-9770da000836\"}],\"userId\":\"2c5a9110-27d1-4834-84c7-95dfeb5ad73f\",\"template\":\"{\\\"AWSTemplateFormatVersion\\\":\\\"v1.0\\\",\\\"Description\\\":\\\"AwsCloud\\\",\\\"Resources\\\":{\\\"AWSEC2Instance19763363\\\":{\\\"Type\\\":\\\"AWS::EC2::Instance\\\",\\\"Properties\\\":{\\\"AvailabilityZone\\\":\\\"cc1\\\",\\\"SecurityGroups\\\":[\\\"default\\\"],\\\"Password\\\":\\\"LPP$o3P8\\\",\\\"KeyName\\\":\\\"\\\",\\\"ImageId\\\":\\\"ami-AE26FF8F\\\",\\\"StorageId\\\":\\\"storage-0FCF83D7\\\",\\\"StorageScheduleTags\\\":\\\"\\\",\\\"InstanceName\\\":\\\"Server_1\\\",\\\"HostName\\\":\\\"\\\",\\\"InstanceType\\\":\\\"m2.medium\\\",\\\"AssociatePublicIpAddress\\\":\\\"false\\\",\\\"ScheduleTags\\\":\\\"\\\",\\\"AllowNodes\\\":\\\"\\\",\\\"NetworkInterfaces\\\":[{\\\"PrivateIpAddress\\\":\\\"\\\",\\\"VpcId\\\":\\\"vpc-00176A87\\\",\\\"SubnetId\\\":\\\"subnet-15F62707\\\"}],\\\"UserData\\\":{\\\"Fn::Base64\\\":\\\"eyJ1c2VyZGF0YSI6ImFIUjBjRG92THpFd0xqSXdNaTQzTUM0eCIsImluc3RhbmNlSWQiOiJkMzljMDZkYi0zZWU2LTRlZDgtOTdlNy0yNjQ3MzRkY2ZkYzYiLCJzZWNyZXRLZXkiOiJNVGt6TXpkaE1qVXRNemN4TlMwMFkyVXhMVGd4TkRjdFpURTFOR1ZqTkdObU5qUmwiLCJhY2Nlc3NLZXkiOiIxOTIwMkMyMTk3NTg0OTY1QjA3Mzk2QzE0M0FENkI4QyIsImRlcGxveWVyVXJsIjoiaHR0cDpcL1wvMTAuMjAxLjc4LjEyOTo4MzAxIn0=\\\"},\\\"Tags\\\":[{\\\"Key\\\":\\\"service\\\",\\\"Value\\\":\\\"68bd2483-3d2c-4112-9150-9770da000836\\\"},{\\\"Key\\\":\\\"from\\\",\\\"Value\\\":\\\"sip\\\"},{\\\"Key\\\":\\\"order\\\",\\\"Value\\\":\\\"2018080600007\\\"}]}}},\\\"Outputs\\\":{\\\"OUTPUT19763363\\\":{\\\"Value\\\": {\\\"Ref\\\":\\\"AWSEC2Instance19763363\\\"}}}}\",\"queue\":\"MachineStone\"}",
"outputs": "{\"strategyId\":\"[\\\"587165cf-a112-4cf1-a080-7039ebde2b46\\\",\\\"67e2a558-4ee2-461f-81e3-82d4176b3ce1\\\",\\\"6db44bd9-62e0-4144-ab83-9794deb221e6\\\",\\\"c626f605-7c87-4f5c-bf79-41d865d37431\\\",\\\"dc958448-55c4-40b3-ac82-1f475dd60b2a\\\",\\\"de2ccc70-d612-4872-827f-7ec486987d85\\\",\\\"f315ada8-3eb6-498e-9ad0-dffbb6774b22\\\"]\",\"machineId\":\"d39c06db-3ee6-4ed8-97e7-264734dcfdc6\",\"type\":\"MachineStone\"}",
"progress": null
}]
参数说明:
参数 | 说明 |
---|---|
id | 唯一标识 |
processInstanceId | 流程ID(activiti) |
taskId | 任务ID(activiti) |
name | 任务名称 |
namespace | 命名空间,适用于一个流程中有两个以上的执行器 |
stone | 执行器 |
createTime | 创建时间 |
endTime | 结束时间 |
status | 状态 |
reason | 失败原因 |
params | 参数 |
outputs | 输出 |
progress | 进度 |
任务状态:
状态 | 说明 |
---|---|
produce.success | 消息已发送,等待执行 |
produce.failed | 消息发送失败 |
start.begin | 开始执行 |
start.failed | 开始事件,执行失败 |
start.success | 开始事件成功 |
monitor.begin | 监控事件开始 |
monitor.success | 监控事件成功 |
monitor.failed | 监控事件失败 |
rollback.begin | 回滚事件开始 |
rollback.success | 回滚事件成功 |
rollback.failed | 回滚事件失败 |
delete.begin | 删除事件开始 |
delete.success | 删除事件成功 |
delete.failed | 删除事件失败 |
cancel.begin | 取消事件开始 |
cancel.success | 取消事件成功 |
cancel.failed | 取消事件失败 |
canceled | 已取消 |
mock.begin | 模拟事件开始 |
mock.success | 模拟事件成功 |
mock.passed | 模拟事件跳过,不需要执行 |
mock.failed | 模拟事件失败 |
获取单个任务
请求方式:GET
请求路径:/task/{taskId}
请求参数:
参数 | 必须 | 说明 |
---|---|---|
taskId | 是 | 任务ID(activiti) |
返回结果:
任务调试
对于失败的,并且处于调试模式的流程,可以对任务进行调试操作。
重新执行
请求方式:PUT
请求路径:/task/{taskId}/reRun
请求参数:
参数 | 必须 | 说明 |
---|---|---|
taskId | 是 | 任务ID(activiti) |
queueType | 是 | 重试的方法类型:start/monitor/cancel /rollback/delete。 |
parameters | 是 | 重试的入参 |
outputs | 是 | 重试的输出信息(针对monitor方法,其他方法,传{}即可) |
请求样例:
PUT方法,接收PATH以外的参数时,须修改ContentType为
APPLICATION_FORM_URLENCODED
并使用MultiValueMap来传递参数
@Test
public void putTask() throws Exception {
RestTemplate restTemplate = getRestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
MultiValueMap params = new LinkedMultiValueMap();
params.add("queueType","start");
params.add("parameters","{}");
params.add("outputs","{}");
HttpEntity<MultiValueMap> entity = new HttpEntity(params,headers);
ResponseEntity<String> exchange = restTemplate.exchange("http://server:8306/task/3795504/reRun"
,HttpMethod.PUT,entity,String.class);
System.out.println(exchange.getBody());
}
返回结果:
结束任务
请求方式:PUT
请求路径:/task/{taskId}/resume
请求参数:
参数 | 必须 | 说明 |
---|---|---|
taskId | 是 | 任务ID(activiti) |
请求样例:
@Test
public void putTask() throws Exception {
RestTemplate restTemplate = getRestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
Map params = new HashMap();
params.add("taskId","3795504");
HttpEntity entity = new HttpEntity(headers);
ResponseEntity<String> exchange = restTemplate.exchange("http://server:8306/task/3795504/resume"
,HttpMethod.PUT,entity,String.class,params);
System.out.println(exchange.getBody());
}
返回结果: