taskInfo 获取任务的信息

函数功能:

根据任务名称获取任务详细信息

对应JS API:
taskInfo(taskName)
适用版本:

Total Control 6.9.0 及以后版本

请求方式:GET
http://IP:8090/TotalControl/v1/tasks/:task_name?token=:token
参数说明:
参数名 类型 必选 描述
IP string Y 访问 Total Control 服务器的 IP 地址
token string Y Total Control TOKEN
task_name string Y 任务名称
返回示例:

成功,则返回:

{
	"task_id": 1545796084641,
	"task_name": "task002",
	"script_file": "C:\\Users\\sigma\\Documents\\Scripts\\getName.js",
	"status": -6,
	"total_iterations": 1,
	"current_iteration": 1,
	"start_time": {"date":26,"day":3,"hours":10,"minutes":44,"month":11,"seconds":55,"time":1545792295907,"timezoneOffset":-480,"year":118},
	"schedule": {"date":29,"day":6,"hours":15,"minutes":50,"month":11,"seconds":0,"time":1546069800000,"timezoneOffset":-480,"year":118},
	"error_message": ""
}
字段 类型 描述
task_id long 任务ID
taskName string 任务名称
script_file string 脚本文件路径
status int 状态值
0:脚本文件不存在;
-1:运行中;
-2:正常停止;
-3:异常停止;
-4:暂停
-5:用户终止
-6:计划任务(未执行的定时任务)
total_iterations int 总执行次数
current_iteration int 当前迭代次数
start_time date 开始时间
end_time date 结束时间
schedule date 定时任务的定时时间
error_message string 错误信息,当 status 为 -3 时,error_message 返回异常的错误信息,当 status 为其他几个值,error_message 为空。


注意事项:
Total Control 提供的 REST API 响应格式都是 JSON ,返回值通常由关键字 "status" 和 "value" 组成,
status: 接口执行成功与否
value: 执行接口的返回信息
该 API 没有 status 和 value 关键字,由其他关键字构成。

示例:获取立即执行的任务 "task001" 的详细信息

注意:下列示例是通过本机访问 Total Control 服务器,所以 IP 都是用的 "localhost"。

RingoJS 请求示例:

可以复制下面的代码,在 Total Control 的脚本终端中执行,也可以保存为后缀为 js 的文件, 例如:example.js,在Total Control 执行器中执行。

//导入一些 ringoJS 的包
var {request} = require('ringo/httpclient');
var base64 = require('ringo/base64');
//将用户名密码编码,'sigma:3D391497'是用户名和密码,在Total Control系统设置里面可以看到
var userpass = base64.encode('sigma:3D391497');

//第一步:获取 Total Control 脚本开发所用的开发 token
var gettoken = request({
    method: 'GET',
    url: 'http://localhost:8090/TotalControl/v1/login',
    headers: {'Authorization': userpass}
	});
//将获取的响应内容转换成json对象
var ret_token = eval('(' + gettoken.content + ')'); 
var token = ret_token.value.token; 
print("//获取 token 的值为:" + token);

//第二步:获取任务的信息
var ret = request({
    method: 'GET',
    url: 'http://localhost:8090/TotalControl/v1/tasks/task001',
    data: {
	"token": token
	}
	});
print(ret.content);
温馨提示:
获取 Total Control 脚本开发所用的开发 token 请看这里

RingoJS 示例运行结果:

成功,则返回:

//获取 token 的值为:m195zZEgY91PMcbo
{
	"task_id": 1545754713008,
	"task_name": "task001",
	"script_file": "C:\\Users\\sigma\\Documents\\Scripts\\getName.js",
	"status": -2,
	"total_iterations": 1,
	"current_iteration": 1,
	"start_time": {"date":26,"day":3,"hours":10,"minutes":44,"month":11,"seconds":55,"time":1545792295907,"timezoneOffset":-480,"year":118},
	"end_time": {"date":26,"day":3,"hours":10,"minutes":44,"month":11,"seconds":56,"time":1545792296428,"timezoneOffset":-480,"year":118},
	"error_message": ""
}
易语言请求示例:

温馨提示,关于易语言的更多信息,请看:
如何安装易语言
学写第一个易语言程序
如何使用易语言控制一台设备
如何使用易语言控制多台设备


.版本 2

.程序集 窗口程序集_启动窗口

.子程序 __启动窗口_创建完毕
.局部变量 base64, 文本型
.局部变量 token, 文本型
.局部变量 device, 文本型
.局部变量 j_token, 类_json, , , 用来解析获取 token 的 json
.局部变量 j_ret, 类_json, , , 用来解析 REST API 接口的json
.局部变量 bool, 逻辑型
.局部变量 bool_ret, 逻辑型

base64 = 到文本 (编码_BASE64编码 (到字节集 (“sigma:3D391497”)))
输出调试文本 (“将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: ” + base64)
bool = j_token.解析 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/login”, 0, , , , “Authorization:” + base64, , , , , , , , , )))
.如果 (bool)
    输出调试文本 (“第一步,获取 token,返回值为:” + j_token.取数据文本 ())
    token = j_token.取通用属性 (“['value'].token”)
    输出调试文本 (“获取的 token 值为: ” + token)
    bool_ret = j_ret.解析 (编码_utf8到gb2312 (到文本 (网页_访问_对象 (“http://localhost:8090/TotalControl/v1/tasks/task001?token=” + token, 0))))
    .如果 (bool_ret)
        输出调试文本 (“第二步,获取任务信息,返回值为: ” + j_ret.取数据文本 ())

    .否则
        输出调试文本 (“该 API 执行失败”)
    .如果结束

.否则
    输出调试文本 (“获取 token 失败”)

.如果结束


易语言代码运行结果:

成功,则返回:

* 将用户名和密码组装成 sigma:3D391497 进行 base64 编码生成的字符串为: c2lnbWE6M0QzOTE0OTc=
* 第一步,获取 token,返回值为:{"status":true,"value":{"token":"mdaOTEp51Hv9uer0"}}
* 获取的 token 值为: mdaOTEp51Hv9uer0
* 第二步,获取任务信息,返回值为: {"task_id":1546870059471,"task_name":"task001","script_file":"C:\\Users\\sigma\\Documents\\Scripts\\getName.js","status":-6,"total_iterations":1,"current_iteration":1,"start_time":{"date":29,"day":2,"hours":15,"minutes":50,"month":0,"seconds":0,"time":1548748200000,"timezoneOffset":-480,"year":119},"schedule":{"date":29,"day":2,"hours":15,"minutes":50,"month":0,"seconds":0,"time":1548748200000,"timezoneOffset":-480,"year":119},"error_message":""}