定时计划
端侧计划与普通任务队列分别建模。计划决定何时触发动作;导航动作再创建本机任务,并跟踪其完成状态。
15.1 计划接口
| 接口 | 请求 | 响应 data |
|---|---|---|
GET /v1/api/schedules | 无 | Schedule[] |
POST /v1/api/schedules | SaveScheduleRequest | 新 Schedule |
GET /v1/api/schedules/{id} | 正整数 id | Schedule |
PUT /v1/api/schedules/{id} | 正整数 id + 完整 SaveScheduleRequest | 更新 Schedule,重算 next_run_at |
DELETE /v1/api/schedules/{id} | 无请求体 | null;删除计划及历史记录 |
POST /v1/api/schedules/{id}/run | 无请求体 | 本次 Run;计划 disabled 时也可手动触发 |
GET /v1/api/schedules/{id}/runs | query limit 默认 50,范围 1–500 | Run[] |
SaveScheduleRequest:
| 字段 | 类型 | 要求 |
|---|---|---|
name | string | 必填,非空 |
enabled | boolean | 可选;创建和更新省略时都按 true,不是保留原值 |
trigger | Trigger | 必填 |
action | Action | 必填 |
PUT 为完整更新,停用计划时也须带 trigger/action,并显式设 enabled=false。
15.2 Trigger
| type | 字段 | 约束 |
|---|---|---|
| startup | delay_seconds: integer | 0–86400;开机/服务启动触发,非 cron |
| interval | every_seconds: integer | 60–2592000,最长 30 天 |
| weekly | weekdays: integer[];time: string;timezone: string | 星期 ISO 1–7(周一=1),至少一项,不重复;time 为 HH:mm;timezone 为有效 IANA 时区,必填 |
{"name":"工作日扫描启动","enabled":true,"trigger":{"type":"weekly","weekdays":[1,2,3,4,5],"time":"09:00","timezone":"Asia/Shanghai"},"action":{"type":"scan_start"}}
15.3 Action
| type | 参数 | 说明 |
|---|---|---|
| scan_start | 无额外字段 | 启动扫描 |
| scan_stop | 无额外字段 | 停止扫描 |
| scan_restart | 无额外字段 | 重启扫描 |
| navigation | target_landmark_id、initial_pose_landmark_id、可选 cycles / adapter_type / nav_container | 准备导航环境后执行目标标注 |
导航动作约束:两个 landmark ID 均为正整数;初始位姿必须是 point;目标可为 point/route;两者必须同一地图;nav_container.scene_name 若填写也必须一致。nav_container 使用 5.1 的配置结构。
{
"name":"每天巡逻","enabled":false,
"trigger":{"type":"weekly","weekdays":[1,2,3,4,5,6,7],"time":"10:00","timezone":"Asia/Shanghai"},
"action":{"type":"navigation","target_landmark_id":2,"initial_pose_landmark_id":1,"cycles":1,"nav_container":{"scene_name":"office_1f","use_relocalization":true}}
}
调用 run 返回记录不等于动作完成;设备忙碌时某些动作可记作 skipped。导航任务运行中的结果由关联任务跟踪,不重复创建并行导航。
15.4 Schedule 与 Run
Schedule 字段:id:integer、name:string、enabled:boolean、trigger:Trigger、action:Action、next_run_at:string|null、可选 last_run:Run、created_at:string、updated_at:string。startup 的 next_run_at 为 null。
| Run 字段 | 类型 | 说明 |
|---|---|---|
id、schedule_id | integer | 执行记录及所属计划 |
source | string | scheduled / manual / startup |
status | string | running / tracking / succeeded / failed / skipped / cancelled |
local_task_id | string,可省略 | 导航关联本机任务 |
started_at、created_at | string | 开始、创建时间 |
ended_at | string,可省略 | 结束时间 |
error_msg | string,可省略 | 失败或跳过原因 |
tracking 表示等待本机导航任务,不是成功终态。非法计划为 400/1001;不存在 404/1002;调度器未配置/内部错误 500/1003。无单独“取消计划本次运行”REST 接口;导航类可针对关联本机任务处理。