Get Task Instance¶
获取指定任务节点实例的详细信息。
前提条件¶
用户必须属于待获取任务节点实例所属的OU。
请求格式¶
GET https://{apigw-address}/batch-processing-service/v2.1/taskInstances
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
taskInstId |
Query |
必需 |
String |
任务节点实例ID(注意:不是任务流实例ID)。 |
userId |
Query |
必需 |
String |
用户ID。如何获取userId信息>> |
orgId |
Query |
必需 |
String |
用户所属的组织ID。如何获取orgId信息>> |
action |
Query |
必需 |
String |
固定值:get |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
List<JSONObject> |
包含任务节点实例的所有信息。详见 TaskInstance结构体 |
TaskInstance结构体¶
示例¶
{
"instanceId": "118979-2021020211",
"taskId": 118979,
"taskName": "DataIntegration",
"cycle": "H",
"status": 1,
"runNum": 1,
"type": 7,
"syncType": null,
"freq": null,
"ifPre": 0,
"stsDesc": "SUCCESS",
"recallNum": 0,
"triggerTime": "2021-02-02 19:35:00",
"timeout": 300,
"recallLimit": 3,
"recallInterval": 0,
"startTime": "2021-02-02 19:35:24",
"endTime": "2021-02-02 19:38:07",
"timeStamp": "Tue Feb 02 17:35:00 CST 2021",
"isTimeout": false,
"flowInstId": "8435-2021020211",
"doAs": "yourDoAs",
"alert": false,
"runMode": "{\"taskMode\":1,\"cpu\":0.6,\"memory\":1.1,\"maxParallel\":0,\"keyType\":0,\"datasourceId\":0,\"path\":\"\",\"content\":\"\"}",
"cmd":"echo hi",
"hasResourceBefore": false,
"resourceName": "",
"fileName": "",
"resourceVersion": ""
}
参数¶
名称 |
数据类型 |
描述 |
---|---|---|
instanceId |
String |
任务节点实例ID。 |
taskId |
Integer |
对应的任务节点ID。 |
taskName |
String |
对应的任务节点名称。 |
cycle |
String |
调度周期(M:月;W:周;D:天;H:小时;mi:分钟)。 |
status |
Integer |
任务节点实例运行状态,详见 FlowInstanceStatus |
runNum |
Integer |
任务节点实例运行的次数(每次重跑加1)。 |
type |
Integer |
任务类型(3: SHELL;7: 数据集成;8: PYTHON;9: 外部应用)。 |
syncType |
Integer |
同步类型:0表示文件同步,1表示数据同步(当任务类型为数据集成时,该字段才有意义)。 |
freq |
String |
节点调度的Cron表达式。 |
ifPre |
Integer |
任务节点可否被依赖(0表示否;1表示是)。 |
stsDesc |
String |
任务节点实例状态描述,详见 FlowInstanceStatus |
recallNum |
Integer |
任务节点实例当前重跑次数。 |
triggerTime |
String |
计划运行时间。 |
timeout |
Integer |
任务节点运行超时时间。 |
recallLimit |
Integer |
任务节点实例失败后,重试次数上限。 |
recallInterval |
Integer |
任务节点实例失败后,尝试重跑的时间间隔。 |
startTime |
String |
任务节点实例开始运行时间(如果实例还未开始运行,则为null)。 |
endTime |
String |
任务节点实例结束运行时间(如果实例还未结束运行,则为null)。 |
timeStamp |
String |
任务节点实例的创建时间。 |
isTimeout |
Boolean |
任务节点运行是否已超时。 |
flowInstId |
String |
任务节点实例所属任务流实例的ID。 |
doAs |
String |
任务流所属组织的大数据账号。 |
alert |
Boolean |
是否已触发告警。 |
runMode |
String |
任务运行模式,详见 RunMode结构体 |
cmd |
String |
任务节点实例所运行的命令。 |
hasResourceBefore |
Boolean |
任务节点实例是否引用资源。 |
resourceName |
String |
引用任务资源的名称(如已引用资源)。 |
fileName |
String |
引用任务资源的文件名(如已引用资源)。 |
resourceVersion |
String |
引用任务资源的版本号(如已引用资源)。 |
错误码¶
代码 |
错误信息 |
描述 |
---|---|---|
62102 |
Incorrect parameter. |
指定的任务节点实例ID(taskInstId)不存在,或者不属于当前组织。 |
62109 |
It has no log. |
服务器内部异常。 |
有关其他错误码的描述,参见 通用错误码。
示例¶
请求示例¶
url: https://{apigw-address}/batch-processing-service/v2.1/taskInstances?action=get&taskInstId=118979-2021020211&userId={}&orgId={}
method: GET
返回示例¶
{
"code": 0,
"msg": "OK",
"data": {
"instanceId": "118979-2021020211",
"taskId": 118979,
"taskName": "DataIntegration",
"cycle": "H",
"status": 1,
"runNum": 1,
"type": 7,
"syncType": null,
"freq": null,
"ifPre": 0,
"stsDesc": "SUCCESS",
"recallNum": 0,
"triggerTime": "2021-02-02 19:35:00",
"timeout": 300,
"recallLimit": 3,
"recallInterval": 0,
"startTime": "2021-02-02 19:35:24",
"endTime": "2021-02-02 19:38:07",
"timeStamp": "Tue Feb 02 17:35:00 CST 2021",
"isTimeout": false,
"flowInstId": "8435-2021020211",
"doAs": "yourDoAs",
"alert": false,
"runMode": "{\"taskMode\":1,\"cpu\":0.6,\"memory\":1.1,\"maxParallel\":0,\"keyType\":0,\"datasourceId\":0,\"path\":\"\",\"content\":\"\"}",
"cmd":"echo hi",
"hasResourceBefore": false,
"resourceName": "",
"fileName": "",
"resourceVersion": ""
}
}
Java SDK调用示例¶
import com.alibaba.fastjson.JSONObject;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envision.apim.poseidon.request.PoseidonRequest;
import java.util.HashMap;
import java.util.Map;
public class SampleCode{
public static class Request extends PoseidonRequest {
public void setQueryParam(String key, Object value){
queryParams().put(key, value);
}
public void setHeaderParam(String key, String value){
headerParams().put(key, value);
}
public void setBodyParam(Map<String, Object> bodyPara){
bodyParams().putAll(bodyPara);
}
public void setMethod(String method) {
this.method = method;
}
private String method;
public String baseUri() {
return "";
}
public String method() {
return method;
}
}
@Test
public void getTaskInstanceTest(){
//1.在EnOS Console的左边导航栏中点击应用注册。
//2.点击需调用API的应用,查看基本信息中的AccessKey即为accessKey、SecretKey即为secretKey
String accessKey = "AccessKey of your APP";
String secretKey = "SecretKey of your APP";
//新建一个request 然后把需要的参数传进去存在Query的map中,key是参数名字,value是参数值
Request request = new Request();
request.setMethod("GET");
try {
JSONObject response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
.url("https://{apigw-address}/batch-processing-service/v2.1/taskInstances")
.queryParam("orgId", "yourOrgId")
.queryParam("userId", "yourUserId")
.queryParam("taskInstId", "118979-2021020211")
.queryParam("action", "get")
.getResponse(request, JSONObject.class);
System.out.println(response);
} catch (Exception e) {
e.printStackTrace();
}
}
}