cURL
curl --request GET "${HARNESS_URL}/harness/cronjobs/${CRONJOB_ID}/runs/${RUN_ID}" \
--header "Authorization: Bearer ${HARNESS_TOKEN}"import json
import os
from urllib.request import Request, urlopen
base_url = os.environ["HARNESS_URL"]
headers = {"Authorization": "Bearer " + os.environ["HARNESS_TOKEN"]}
job_id = os.environ["CRONJOB_ID"]
run_id = os.environ["RUN_ID"]
request = Request(base_url + f"/harness/cronjobs/{job_id}/runs/{run_id}", headers=headers, method="GET")
with urlopen(request) as response:
print(json.load(response))const baseUrl = process.env.HARNESS_URL;
const headers = { Authorization: `Bearer ${process.env.HARNESS_TOKEN}` };
const response = await fetch(`${baseUrl}/harness/cronjobs/${process.env.CRONJOB_ID}/runs/${process.env.RUN_ID}`, {
method: "GET",
headers,
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());{
"cronjob_id": "0e58ff7f7dcbf348c252fc70e7fdb587",
"run_id": "8210479599999-677bde100cec511735b2",
"revision": 1,
"scheduled_at": "2026-09-16T01:00:00Z",
"created_at": "2026-09-16T01:00:00Z",
"prompt": "Summarize recent activity",
"harness": null,
"timeout_seconds": 1800,
"state": "succeeded",
"owner": "replica-1",
"started_at": "2026-09-16T01:00:00+00:00",
"completed_at": "2026-09-16T01:00:10+00:00",
"lease_until": "2026-09-16T01:01:00+00:00",
"cancel_requested": false,
"output": "Daily report",
"error": ""
}定时任务
读取执行结果
读取指定执行的当前状态或已完成结果
GET
/
harness
/
cronjobs
/
{job_id}
/
runs
/
{run_id}
cURL
curl --request GET "${HARNESS_URL}/harness/cronjobs/${CRONJOB_ID}/runs/${RUN_ID}" \
--header "Authorization: Bearer ${HARNESS_TOKEN}"import json
import os
from urllib.request import Request, urlopen
base_url = os.environ["HARNESS_URL"]
headers = {"Authorization": "Bearer " + os.environ["HARNESS_TOKEN"]}
job_id = os.environ["CRONJOB_ID"]
run_id = os.environ["RUN_ID"]
request = Request(base_url + f"/harness/cronjobs/{job_id}/runs/{run_id}", headers=headers, method="GET")
with urlopen(request) as response:
print(json.load(response))const baseUrl = process.env.HARNESS_URL;
const headers = { Authorization: `Bearer ${process.env.HARNESS_TOKEN}` };
const response = await fetch(`${baseUrl}/harness/cronjobs/${process.env.CRONJOB_ID}/runs/${process.env.RUN_ID}`, {
method: "GET",
headers,
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());{
"cronjob_id": "0e58ff7f7dcbf348c252fc70e7fdb587",
"run_id": "8210479599999-677bde100cec511735b2",
"revision": 1,
"scheduled_at": "2026-09-16T01:00:00Z",
"created_at": "2026-09-16T01:00:00Z",
"prompt": "Summarize recent activity",
"harness": null,
"timeout_seconds": 1800,
"state": "succeeded",
"owner": "replica-1",
"started_at": "2026-09-16T01:00:00+00:00",
"completed_at": "2026-09-16T01:00:10+00:00",
"lease_until": "2026-09-16T01:01:00+00:00",
"cancel_requested": false,
"output": "Daily report",
"error": ""
}需要使用 AgentKit CLI 0.54.0 部署并启用定时任务的 Harness Runtime
响应可以是排队、运行中或终态记录,并非只有完成后才可读取。
output 保存最终文本;失败时读取 error。超时与失败不会自动重试该次执行授权
服务鉴权 Harness 的 Runtime 访问凭证,例如 Runtime API Key;共享 OAuth 部署不支持后台定时任务
路径参数
任务 ID,32 位小写十六进制字符
Pattern:
^[a-f0-9]{32}$执行 ID,使用任务状态或执行历史返回的值
Pattern:
^[0-9]{13}-[a-f0-9]{20}$响应
成功
所属任务 ID
Pattern:
^[a-f0-9]{32}$执行 ID,用于读取或取消该次执行
Pattern:
^[0-9]{13}-[a-f0-9]{20}$本次执行使用的任务修订号
计划触发时间,UTC
执行记录创建时间,UTC
本次执行的消息
该任务每次执行时应用的配置,仅应用显式提供的字段,未提供字段继承已部署智能体
Show child attributes
Show child attributes
本次执行的超时秒数
执行状态
可用选项:
queued, running, succeeded, failed, cancelled, skipped, interrupted 执行本次任务的副本标识;尚未开始时为 null
执行开始时间,UTC;尚未开始时为 null
执行结束时间,UTC;尚未结束时为 null
当前执行有效期截止时间,UTC;尚未开始时为 null
是否已请求取消本次执行
执行输出;失败时为空。成功输出最大 1 MiB
失败、取消、跳过或中断的说明;无错误时为空字符串
补跑合并涉及的最早错过时间,UTC;仅发生触发合并时提供
最后修改于 2026年9月19日