CrontabResult CRUD
Query CrontabResult
调用者可以通过 crontab-result_query 查询执行结果记录。
默认 LIMIT:若
condition中未指定limit或last,查询默认限制返回 1,000 条记录。显式指定limit可覆盖此默认值。最大 LIMIT:显式指定的
limit不能超过10,000(MAX_LIMIT),超过会被截断为10,000。
方法
调用方法名为 crontab-result_query,需要提供以下参数:
json
{
"token": "demo_token",
"query": {
"condition": [
// CrontabResultQueryCondition 结构体,该结构体参考 CrontabResult 总览
// 该字段为 Vec<_>,可指定多个
]
}
}权限要求
- 需要
CrontabResult::Read(String)权限 - 仅在
GlobalScope 下有效 read权限中的字符串对应cron_name,支持通配符*- 若结果涉及多个不同的
cron_name,则 Token 必须对每个cron_name都具备对应的读取权限
返回值
json
[
{
"id": 1,
// 记录 ID
"cron_id": 5,
// 关联的 Crontab ID
"cron_name": "cleanup_database",
// Crontab 名称
"relative_id": null,
// 关联的 task_id 或 js_result_id(可空)
"run_time": 1769341269012,
// 执行时间(毫秒时间戳,可空)
"success": true,
// 是否执行成功(可空)
"message": "Cleaned 100 records"
// 执行结果消息(可空)
}
// 该字段为 Vec<_>,可返回多条
]完整示例
查询指定 cron_name 的所有结果:
请求:
json
{
"jsonrpc": "2.0",
"method": "crontab-result_query",
"params": {
"token": "demo_token",
"query": {
"condition": [
{
"cron_name": "cleanup_database"
}
]
}
},
"id": 1
}查询指定时间范围内的成功记录:
json
{
"jsonrpc": "2.0",
"method": "crontab-result_query",
"params": {
"token": "demo_token",
"query": {
"condition": [
{
"cron_name": "cleanup_database"
},
{
"run_time_from_to": [
1700000000000,
1800000000000
]
},
"is_success"
]
}
},
"id": 1
}查询最近的 10 条失败记录:
json
{
"jsonrpc": "2.0",
"method": "crontab-result_query",
"params": {
"token": "demo_token",
"query": {
"condition": [
{
"cron_name": "backup_database"
},
"is_failure"
]
}
},
"id": 1
}获取最后一条执行记录:
json
{
"jsonrpc": "2.0",
"method": "crontab-result_query",
"params": {
"token": "demo_token",
"query": {
"condition": [
{
"cron_name": "cleanup_database"
},
"last"
]
}
},
"id": 1
}注意: 需要分别查询每个 cron_name,不支持一次查询多个不同的 cron_name。
Delete CrontabResult
调用者可以通过 crontab-result_delete 删除执行结果记录。
方法
调用方法名为 crontab-result_delete,需要提供以下参数:
json
{
"token": "demo_token",
"query": {
"condition": [
// CrontabResultQueryCondition 结构体,该结构体参考 CrontabResult 总览
// 该字段为 Vec<_>,可指定多个
// delete 与 query 使用完全相同的 condition 语义
]
}
}权限要求
删除操作需要 CrontabResult::Delete(String) 权限,仅在 Global Scope 下有效。
权限结构示例:
json
{
"scopes": [
"global"
],
"permissions": [
{
"crontab_result": {
"delete": "cleanup_database"
// 删除指定 cron_name
}
},
{
"crontab_result": {
"delete": "backup_*"
// 删除匹配通配符的 cron_name
}
},
{
"crontab_result": {
"delete": "*"
// 删除所有(全局权限)
}
}
]
}- 若指定了
cron_name条件,则检查对该cron_name的删除权限 - 若未指定
cron_name条件(删除所有匹配记录),则需要全局删除权限{"delete": "*"} - 若匹配的记录涉及多个不同的
cron_name,则 Token 必须对每个cron_name都具备对应的删除权限
返回值
json
{
"success": true,
// 是否成功
"deleted": 100,
// 删除的记录数量
"condition_count": 3
// 条件数量
}完整示例
删除指定 cron_name 在指定时间之前的所有记录:
请求:
json
{
"jsonrpc": "2.0",
"method": "crontab-result_delete",
"params": {
"token": "demo_token",
"query": {
"condition": [
{
"cron_name": "cleanup_database"
},
{
"run_time_to": 1700000000000
}
]
}
},
"id": 1
}删除指定 cron_name 的最近 10 条记录(需要对应权限):
json
{
"jsonrpc": "2.0",
"method": "crontab-result_delete",
"params": {
"token": "demo_token",
"query": {
"condition": [
{
"cron_name": "cleanup_database"
},
{
"limit": 10
}
]
}
},
"id": 1
}删除所有失败记录(需要全局删除权限):
json
{
"jsonrpc": "2.0",
"method": "crontab-result_delete",
"params": {
"token": "demo_token",
"query": {
"condition": [
"is_failure"
]
}
},
"id": 1
}