作业
查询历史作业详情
1.接口说明
接口路径:/hpc/openapi/v2/historyjobs/{jobmanagerId}/{jobId}
请求方式:GET
请求数据类型:
接口描述:查询具体历史作业的详细信息
2.请求消息
请求参数:
Headers:
名称 | 类型 | 必填 | 描述 | 示例 |
---|---|---|---|---|
token | string | 是 | 接口凭证 | eyJhbGciOiJIUzI1N... |
参数:
名称 | 类型 | 必填 | 描述 | 示例 |
---|---|---|---|---|
jobId | string | 是 | 作业ID | 3 |
jobmanagerId | string | 是 | 调度器ID | 1638523853 |
acctTime | string | 否 | 入账时间(结束时间),建议传入,能够提升查询性能 | 2021-12-08 17:45:37 |
3.请求示例
cURL请求示例
curl --location 'https://api01.xxx.com:65106/hpc/openapi/v2/historyjobs/1638523853/35919' \
--header 'Content-Type: application/json' \
--header 'token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb21wdXRlVXNlciI6InNsdXJtdGVzdCIsImFjY291bnRTdGF0dXMiOiJUcmlhbCIsImNyZWF0b3IiOiJhYyIsInJvbGUiOiIxIiwiZXhwaXJlVGltZSI6IjE2ODU2MDAyMjU2MTUiLCJjbHVzdGVySWQiOiIxMTExMiIsImludm9rZXIiOiI2MDQ4Y2U3YmExNWMyYWYyZThjZWMxMjk5MWVjMTNjZiIsInVzZXIiOiJzbHVybXRlc3QiLCJ1c2VySWQiOiIxMTY1NTA0ODU0MSJ9.iLCKJ8PnDDK0_SA2NPYm1WozUG8D5ojwFqFhwaJCDc8'
Java请求示例
import okhttp3.*;
public class QueryHistoryJobDetailByIdDemo {
public static final String TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb21wdXRlVXNlciI6InNsdXJtdGVzdCIsImFjY291bnRTdGF0dXMiOiJUcmlhbCIsImNyZWF0b3IiOiJhYyIsInJvbGUiOiIxIiwiZXhwaXJlVGltZSI6IjE2ODY5MDg1MDkyMzEiLCJjbHVzdGVySWQiOiIxMTExMiIsImludm9rZXIiOiI2MDQ4Y2U3YmExNWMyYWYyZThjZWMxMjk5MWVjMTNjZiIsInVzZXIiOiJzbHVybXRlc3QiLCJ1c2VySWQiOiIxMTY1NTA0ODU0MSJ9.U7pZKgO_K6NuRwOWPxblDfgRpGeVxS-BYieOdLhGDK4";
public static void main(String[] args) throws Exception {
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
Request request = new Request.Builder()
.url("https://api01.xxx.com:65106/hpc/openapi/v2/historyjobs/1638523853/35919")
.method("GET", null)
.addHeader("Content-Type", "application/json")
.addHeader("token", TOKEN)
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
}
}
Python请求示例
import requests
import json
url = "https://api01.xxx.com:65106/hpc/openapi/v2/historyjobs/1638523853/35919"
payload = {}
headers = {
'Content-Type': 'application/json',
'token': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb21wdXRlVXNlciI6InNsdXJtdGVzdCIsImFjY291bnRTdGF0dXMiOiJUcmlhbCIsImNyZWF0b3IiOiJhYyIsInJvbGUiOiIxIiwiZXhwaXJlVGltZSI6IjE2ODU2MDAyMjU2MTUiLCJjbHVzdGVySWQiOiIxMTExMiIsImludm9rZXIiOiI2MDQ4Y2U3YmExNWMyYWYyZThjZWMxMjk5MWVjMTNjZiIsInVzZXIiOiJzbHVybXRlc3QiLCJ1c2VySWQiOiIxMTY1NTA0ODU0MSJ9.iLCKJ8PnDDK0_SA2NPYm1WozUG8D5ojwFqFhwaJCDc8'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
4.响应消息
返回参数:
名称 | 类型 | 描述 | 示例 |
---|---|---|---|
msg | string | 信息 | success |
code | string | 状态码 | 0 |
data | object | 历史作业对象 | |
acctTime | string | 记账时间 | 2021-11-03T13:56:56 |
appType | string | 应用类型 | BASE |
command | string | 作业脚本的位置 | /public/home/test/BASE/STDIN_1104_175546/job_BASE.slurm |
commandExist | string | 作业脚本是否存在 | true |
cpuNuclearHour | string | CPU核时 | 0.1392 |
cpuNuclearSec | string | CPU核秒 | 501 |
cpuUnitPrice | double | 作业提交时当时的CPU单价 | 1 |
dcuCardHour | string | DCU卡时 | 0 |
dcuCardSec | string | DCU卡秒 | 0 |
dcuUnitPrice | double | 作业提交时当时的DCU单价 | 1 |
efficiencyCpu | string | CPU效率 | 100.00% |
exclusiveCputime | long | 作业独占的cputime,单位为秒,当作业为独占作业时有值,否则为0 | 0 |
exclusiveMem | long | 作业独占的mem ,单位kb,当作业为独占作业时有值,否则为0 | 0 |
exclusiveWalltime | long | 作业独占的walltime,单位为秒,当作业为独占作业时有值,否则为0 | 0 |
goldenable | string | 作业提交时当时的计费状态 | true/false/unknown |
gpuCardHour | string | GPU卡时 | 0 |
gpuCardSec | string | GPU卡秒 | 0 |
gpuUnitPrice | double | 作业提交时当时的GPU单价 | 1 |
groupName | string | 用户组名 | test |
historyAccount | string | 作业运行结束后当时作业提交者所属的账号 | test |
historyQueuerate | string | 作业提交时当时的队列费率 | 1 |
isSinglejob | string | 是否为独占节点的作业 | false |
jobCpuTime | long | 作业占用的CPU时间 ,单位为秒 | 501 |
jobDcuNum | long | 作业使用的DCU数 | 0 |
jobEndTime | date | 作业结束时间,对应属性end | 2021-11-04T18:04:10 |
jobExecGpus | string | 作业占用的Gpu节点 | |
jobExecHost | string | 作业执行节点 | node248 |
jobExitStatus | long | 作业退出代码 | 0 |
jobGpuNum | long | 作业使用的GPU核数 | 0 |
jobId | string | 作业ID | 12 |
jobMemUsed | long | 作业使用的物理内存数,单位kb | 3972 |
jobName | string | 作业名 | STDIN_1104_175546 |
jobProcNum | long | 作业使用的处理器数(表示核数) | 1 |
jobQueueTime | date | 作业入队时间,对应记账属性qtime | 2021-11-04T17:55:49 |
jobReqCpu | double | 申请CPU | 1 |
jobReqDcu | double | 申请DCU | 0 |
jobReqGpu | double | 申请GPU | 0 |
jobReqMem | string | 申请内存 | 2153M |
jobReqNodes | double | 申请节点数 | 1 |
jobResponseTime | long | 作业响应时间JobEndTime-JobQueueTime,单位为秒 | 501 |
jobStartTime | date | 作业启动时间,对应属性start | 2021-11-04T17:55:49 |
jobState | string | 作业状态 | statE:退出,statC:完成,statDE:取消,statD:失败,statT:超时,statN:节点异常,statRQ:重新运行 |
jobVmemUsed | long | 作业使用的虚拟内存,单位kb | 1435680 |
jobWaitTime | long | 作业等待时间JobStartTime-JobQueueTime,单位为秒 | 0 |
jobWalltimeUsed | long | 作业实际使用的Walltime,单位为秒 | 501 |
jobmanagerId | long | 区域ID | 1634819344 |
jobmanagerName | string | 区域名称 | Cluster_node248 |
needNodes | string | 分配的节点名或节点数 | node248 |
nodect | long | 分配的节点数 | 1 |
owner | string | 作业拥有者 | test |
queue | string | 队列 | debug |
scale | string | 作业的规模 | |
shareCputime | long | 作业共享的cputime,单位为秒,当作业为非独占作业时有值,否则为0 | 501 |
shareMem | long | 作业共享的mem,单位kb,当作业为非独占作业时有值,否则为0 | 3972 |
shareWalltime | long | 作业共享的walltime,单位为秒,当作业为非独占作业时有值,否则为0 | 501 |
isSinglejob | boolean | 是否为独占节点的作业 | false |
startCount | string | 作业的启动次数,在对应的数据库表中没有这个字段 | |
userName | string | 用户名 | test |
walltime | long | 提交作业时请求的Walltime或系统默认的Walltime,单位为秒 | 86400 |
workdir | string | 作业的工作路径 | /public/home/test/BASE/STDIN_1104_175546 |
返回示例:
{
"code": "0",
"msg": "success",
"data": {
"acctTime": "2021-12-10 15:14:28",
"jobId": "24",
"jobmanagerId": 1638523853,
"jobmanagerName": "Cluster",
"userName": "test",
"groupName": "test",
"jobName": "STDIN_0910_094758",
"queue": "debug",
"jobQueueTime": "2021-12-10 15:14:22",
"jobStartTime": "2021-12-10 15:14:22",
"owner": "test",
"jobExecHost": "h04r3n07",
"jobExecGpus": null,
"needNodes": "h04r3n07",
"nodect": 1,
"walltime": 86400,
"jobEndTime": "2021-12-10 15:14:28",
"jobWaitTime": 0,
"jobResponseTime": 6,
"jobExitStatus": 0,
"jobCpuTime": 6,
"jobMemUsed": 3940,
"jobVmemUsed": 1390000,
"jobProcNum": 1,
"jobGpuNum": 0,
"jobWalltimeUsed": 6,
"workdir": "/public/home/test/BASE/STDIN_1210_114429",
"isSinglejob": false,
"exclusiveWalltime": 0,
"shareWalltime": 6,
"exclusiveMem": 0,
"shareMem": 3940,
"exclusiveCputime": 0,
"shareCputime": 6,
"startCount": null,
"historyQueuerate": 1.0,
"historyAccount": null,
"scale": null,
"appType": "BASE",
"goldenable": null,
"cpuUnitPrice": 1.0,
"gpuUnitPrice": 1.0,
"dcuUnitPrice": 1.0,
"jobDcuNum": 0,
"command": "/public/home/test/BASE/STDIN_1210_114429/job_BASE.slurm",
"jobReqMem": "3826M",
"jobReqCpu": 1.0,
"jobReqGpu": 0.0,
"jobReqDcu": 0.0,
"jobReqNodes": 1.0,
"cpuNuclearHour": 0.0017,
"cpuNuclearSec": 6.0,
"gpuCardHour": 0.0,
"gpuCardSec": 0.0,
"dcuCardHour": 0.0,
"dcuCardSec": 0.0,
"commandExist": "true",
"efficiencyCpu": "100.00%",
"jobState": "statC",
"stdout": null,
"stderr": null,
"jobExtAttr": null,
"jobExecCpus": null,
"jobExecDcus": null
}
}
5.错误码
错误码 | 说明 |
---|---|
0 | 成功 |
10001 | 内部错误 |
10003 | 参数不全 |
10004 | 参数无效 |
10007 | 用户已被冻结 |
10008 | 权限不足 |
10009 | 没有权限访问接口 |
10010 | 文件校验失败 |
10011 | 文件过大 |
10012 | 连接中断 |
10013 | 操作超时 |
815005 | 作业提交失败(调度系统没返回) |
815007 | 作业提交失败(调度系统sbatch失败) |