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();
        }
    }
}