快速开始

本指南创建 scheduler、入队延迟任务、列出任务、通过 lease 预留任务,并检查 health。

创建 Scheduler

1curl -X POST "https://api.hola.cloud/schedulers" \
2  -H "X-API-Key: YOUR_API_KEY" \
3  -H "Content-Type: application/json" \
4  -d '{
5    "id": "sched-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
6    "display_name": "my-scheduler"
7  }'
1{
2  "scheduler": {
3    "id": "sched-a1b2c3d4-e5f6-7890-abcd-ef1234567890",
4    "ready": true,
5    "scheduled": 0,
6    "inflight": 0,
7    "display_name": "my-scheduler"
8  }
9}

入队任务

1curl -X POST "https://api.hola.cloud/schedulers/sched-a1b2c3d4-e5f6-7890-abcd-ef1234567890/tasks" \
2  -H "X-API-Key: YOUR_API_KEY" \
3  -H "Content-Type: application/json" \
4  -d '{
5    "id": "task-001",
6    "payload": { "type": "send_email" },
7    "delay": "60s",
8    "labels": ["project:onboarding", "priority:high"]
9  }'

响应:HTTP 202 Accepted,响应体为空。

列出任务

 1{
 2  "scheduled": [
 3    {
 4      "id": "task-001",
 5      "future": "2025-06-21T12:01:01Z",
 6      "labels": ["project:onboarding", "priority:high"]
 7    }
 8  ],
 9  "inflight": [],
10  "scheduled_meta": { "page": 1, "per_page": 25, "total": 1, "total_pages": 1 },
11  "inflight_meta": { "page": 1, "per_page": 25, "total": 0, "total_pages": 0 }
12}

预留并确认

1{ "worktime": "30s" }
1{
2  "id": "task-001",
3  "payload": { "type": "send_email" },
4  "lease_expires_at": "2025-06-21T12:02:01Z",
5  "labels": ["project:onboarding", "priority:high"]
6}

通过删除任务确认完成。响应为 HTTP 204 No Content

Health

1{
2  "status": "ok",
3  "ready": true,
4  "scheduled": 0,
5  "inflight": 0,
6  "scheduler_id": "sched-a1b2c3d4-e5f6-7890-abcd-ef1234567890"
7}

评论

发表评论