API Chung#
Trang này chỉ còn 2 endpoint chung cho mọi worker server:
POST /worker/health— heartbeat + cập nhật server (metrics + max_threads).POST /worker/logs— gửi log.
Tất cả endpoint đều yêu cầu header X-API-Key.
Các API xử lý task (pull / start / complete / fail) nằm trong từng service riêng: xem Entity Backlink, Social Backlink, Google Stacking, Blog 2.0, Podcast, Link Cloud, Blog Comment, Indexing.
Rule: Server phải online mới gọi được API “làm việc”#
Nếu server đang ở trạng thái offline (không gửi heartbeat 5 phút), mọi call pull task / start / complete / fail đều bị 403 server_not_online:
{
"success": false,
"code": "server_not_online",
"message": "server '<tên>' hiện đang 'offline' — gọi /worker/health trước để khôi phục về online",
"status": "offline"
}Hồi phục: Worker gọi POST /worker/health (heartbeat) — endpoint này miễn trừ check, tự set status='online', sau đó mới pull task được. POST /worker/logs cũng miễn trừ (cho phép gửi log retroactive).
POST /worker/health — Heartbeat #
Gửi mỗi 30-60 giây để giữ server online + update metrics. Có thể gửi kèm max_threads để scale capacity runtime.
Body:
{
"server_name": "server-01",
"ip": "192.168.1.100",
"cpu_usage": 45.5,
"ram_usage": 60.2,
"disk_usage": 30.0,
"active_threads": 5,
"active_tasks": 12,
"max_threads": 20
}| Field | Loại | Mô tả |
|---|---|---|
server_name | string | Tuỳ chọn — update tên |
ip | string | Tuỳ chọn — update IP ghi nhận được |
cpu_usage | float | % CPU |
ram_usage | float | % RAM |
disk_usage | float | % Disk |
active_threads | int | Thread đang chạy |
active_tasks | int | Task đang xử lý |
max_threads | int | Tuỳ chọn — cập nhật số luồng tối đa server chịu được (1-1000). Worker dùng khi scale up/down runtime. Giá trị ngoài khoảng sẽ bị ignore, giữ nguyên giá trị cũ. |
Response:
{
"success": true,
"server_id": "uuid",
"server_time": "2026-04-24T08:00:00+07:00"
}Lưu ý: Assign tính live count active_tasks trực tiếp từ DB khi dispatch, không phụ thuộc
servers.active_taskscolumn — nên heartbeat chỉ để giữ serveronline+ metrics cho admin UI. Dispatcher luôn thấy load thật.Gửi
max_threadstrong heartbeat để scale runtime mà không cần endpoint riêng. Thay đổi có hiệu lực ngay với dispatcher tick kế tiếp (3s).
POST /worker/logs — Gửi logs #
Tối đa 500 entries / request. Lưu vào bảng server_logs.
Body:
{
"logs": [
{ "level": "INFO", "message": "Starting task uuid-123" },
{ "level": "ERROR", "message": "Failed to solve captcha" }
]
}| Field | Loại | Mô tả |
|---|---|---|
level | string | DEBUG, INFO, WARN, ERROR (mặc định INFO) |
message | string | Nội dung log |