Tài liệu kỹ thuật – Phiên bản 1.0
Mô tả kiến trúc, chức năng và quy trình vận hành của Social Tool Worker
1. Giới thiệu#
Social Tool Worker là thành phần thực thi (Automation Worker) trong hệ thống Social Tool. Worker nhận lệnh từ API Server thông qua NATS Message Broker, sau đó sử dụng trình duyệt headless (Puppeteer + Google Chrome) để tự động thực hiện các hành động trên các nền tảng mạng xã hội.Thông tin chung#
| |
|---|
| Runtime | Bun (TypeScript) |
| Framework | ElysiaJS |
| Database | MongoDB + Typegoose ORM |
| Message Broker | NATS |
| Browser Engine | Puppeteer + Google Chrome Stable |
| Port mặc định | 21033 (dev) / 51005 (prod) |
| Chế độ vận hành | NATS (event-driven) hoặc HTTP (REST API) |
2. Giá trị cốt lõi#
| Giá trị | Mô tả |
|---|
| 🤖 Tự động hóa hoàn toàn | Thực thi Like, Comment, Share, Post, Join Group, Login... mà không cần can thiệp thủ công |
| ⚡ Phân bổ tài nguyên động | Tự động phân chia worker giữa các module dựa trên khối lượng công việc thực tế |
| 🔄 Hai chế độ vận hành | Hỗ trợ cả NATS (event-driven, khuyên dùng) và HTTP (REST API) |
| 🛡️ Proxy tích hợp | Mỗi tác vụ được route qua proxy riêng, bảo vệ tài khoản khỏi bị phát hiện |
| 🧠 Tích hợp AI | Sử dụng ChatGPT để sinh nội dung comment, reply thông minh |
| 🔐 Captcha tự động | Tích hợp dịch vụ giải captcha khi gặp rào cản bảo mật |
3. Các module chức năng#
3.1. Task Module — Thực thi hành động MXH#
Module cốt lõi, xử lý các tác vụ tương tác trên mạng xã hội:| Hành động | Mô tả |
|---|
| Like | Thả cảm xúc bài viết |
| Comment | Bình luận (hỗ trợ AI sinh nội dung, đính kèm ảnh) |
| Reply | Trả lời comment (hỗ trợ AI, tối đa 5 reply/lượt) |
| Share | Chia sẻ bài viết |
| Post | Đăng bài mới (kèm ảnh) |
| Collect Data (Craw) | Thu thập dữ liệu từ bài viết/trang |
| Report | Báo cáo bài viết |
| Rename / Change Avatar | Đổi tên, đổi ảnh đại diện |
| Check Notification / NewFeed | Kiểm tra thông báo, bảng tin |
Nền tảng hỗ trợ: Facebook, Instagram, Twitter, TikTok, Google, Telegram.3.2. Cookie Module — Quản lý phiên đăng nhập#
Tự động đăng nhập vào tài khoản MXH, lấy cookie/session mới và thu thập thông tin profile (avatar, email, giới tính...).3.3. Proxy Module — Kiểm tra proxy#
Xác minh proxy còn hoạt động hay không, phát hiện IP public thực tế, hỗ trợ auto-rotate IP.3.4. TaskJoin Module — Tham gia nhóm#
Tự động tham gia hoặc kiểm tra trạng thái tham gia các Group (public/private) trên mạng xã hội.
4. Chế độ vận hành#
Worker hỗ trợ hai chế độ, được cấu hình qua biến môi trường USE_NATS: | NATS Mode (khuyên dùng) | HTTP Mode |
|---|
| Trigger | Event-driven (subscribe NATS subjects) | HTTP request từ API Server |
| Worker | Phân bổ tự động, tái cân bằng mỗi 120s | Không có cơ chế phân bổ |
| Scale | Dễ scale ngang (thêm Worker node) | Giới hạn bởi single instance |
| Swagger | Không có | Có (/swagger) |
5. Phân bổ Worker động (Dynamic Worker Allocation)#
Khi chạy ở chế độ NATS, hệ thống tự động phân bổ CRON_TASK_LIMIT worker cho các module dựa trên khối lượng công việc thực tế:Ví dụ: Nếu CRON_TASK_LIMIT=4 và chỉ có module Task và Cookie có công việc, mỗi module sẽ nhận 2 worker. Khi module Proxy phát sinh công việc, hệ thống tự động tái phân bổ (ví dụ: Task=2, Cookie=1, Proxy=1).
6. Quy trình xử lý tác vụ#
[1] API Server tạo Task và gửi qua NATS
│
▼
[2] Worker nhận Task, lưu vào MongoDB (status: PENDING)
│
▼
[3] Cron quét task PENDING, chọn theo user_id
│
▼
[4] Mở trình duyệt headless
→ Nạp Cookie + Proxy + User Agent
→ Truy cập URL mục tiêu
│
▼
[5] Thực thi hành động (Like, Comment, Share...)
→ Xử lý Captcha nếu cần (tích hợp dịch vụ bên thứ ba)
→ Dùng AI sinh nội dung nếu được cấu hình
│
▼
[6] Gửi kết quả về API Server qua NATS/Webhook
→ Cập nhật trạng thái: COMPLETED hoặc FAILED
→ Xóa task khỏi MongoDB (nếu DEBUG_DELETE_TASK_AFTER_PROCESSING=true)
7. Công nghệ sử dụng#
| Thành phần | Công nghệ | Mục đích |
|---|
| Runtime | Bun ≥ 1.2.5 | JavaScript/TypeScript runtime nhanh |
| Framework | ElysiaJS | HTTP server và routing |
| ORM | Typegoose + Mongoose | Tương tác MongoDB với TypeScript type-safe |
| Database | MongoDB ≥ 7 | Lưu trữ task queue, kết quả |
| Messaging | NATS | Giao tiếp bất đồng bộ với API Server |
| Browser | Puppeteer + puppeteer-extra-plugin-stealth | Tự động hóa trình duyệt, chống phát hiện bot |
| AI | OpenAI (GPT-4o-mini) | Sinh nội dung comment, reply |
| Captcha | OMO Captcha | Giải captcha tự động |
| Logging | Custom Logger | Ghi log theo level, hỗ trợ file và console |
| Container | Docker + Supervisor | Đóng gói và quản lý tiến trình |
Tài liệu được cập nhật lần cuối: 2026. Mọi thắc mắc vui lòng liên hệ đội ngũ kỹ thuật.Modified at 2026-03-26 03:06:56