Tổng Quan Vận Hành — Source api#
Vai trò: Trung tâm điều phối — Não bộ của toàn bộ hệ thống
Công nghệ: PHP / Laravel · MySQL · Redis · Queue (Horizon)
1. Source này làm gì?#
api là bộ phận duy nhất có toàn quyền trên toàn hệ thống. Nó đóng vai trò:Lưu trữ toàn bộ dữ liệu (domain, kết quả kiểm tra, lịch sử, người dùng...)
Lập lịch tự động chạy kiểm tra theo ngày / theo giờ
Phân công việc cho các máy chạy (tool-check, tool-recordvideo)
Nhận kết quả từ các máy chạy và cập nhật cơ sở dữ liệu
Phục vụ giao diện admin — mọi thứ hiện ra trên màn hình đều lấy từ đây
2. Cấu trúc vận hành#
┌──────────────────────────────────────────────────────────────────┐
│ SOURCE: api │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌────────────────────┐ │
│ │ Lịch tự động│ │ Hàng đợi │ │ Webhook nhận về │ │
│ │ (Scheduler)│───►│ (Queue/ │ │ (từ tool-check │ │
│ │ │ │ Horizon) │ │ & tool-record) │ │
│ └─────────────┘ └──────┬───────┘ └────────┬───────────┘ │
│ │ │ │
│ Phân công │ Kết quả │ │
│ cho tool │ trả về │ │
│ ▼ ▼ │
│ ┌───────────────────────────────────┐ │
│ │ Cơ sở dữ liệu (MySQL) │ │
│ │ Domains · History · Keywords │ │
│ │ Servers · Users · Proxies... │ │
│ └───────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────┘
3. Các luồng công việc chính#
Luồng A — Chạy tự động hàng ngày#
Đến giờ hẹn (ví dụ: 6h sáng)
│
▼
Scheduler tự khởi động lệnh tìm domain cần kiểm tra
│
▼
Hệ thống tạo "phiếu công việc" (Job) cho từng domain
và đẩy vào hàng đợi (Queue)
│
▼
Horizon (trình quản lý hàng đợi) phân phối công việc
cho các máy chạy còn rảnh
│
▼
Máy chạy nhận lệnh, thực hiện kiểm tra → trả kết quả về
Luồng B — Chạy thủ công (do nhân viên bấm nút)#
Nhân viên bấm "Chạy kiểm tra" trên giao diện admin
│
▼
Giao diện gọi API của source này
│
▼
API tạo phiếu công việc ngay lập tức (ưu tiên cao)
và đẩy vào hàng đợi
│
▼ (xử lý nhanh hơn chế độ tự động)
Máy chạy thực thi và trả kết quả về
Luồng C — Nhận kết quả (Webhook)#
Máy chạy hoàn thành công việc
│
▼
Gửi thông báo về API qua đường "Webhook"
(giống như tin nhắn nội bộ tự động)
│
▼
API nhận tin, cập nhật trạng thái domain:
• Ảnh chụp lưu vào đâu
• Video lưu vào đâu
• Domain có bị chặn không
• Domain đang chuyển về đâu
│
▼
Giao diện admin tự động hiển thị kết quả mới
4. Các nhóm chức năng quản lý#
| Nhóm chức năng | Mô tả đơn giản |
|---|
| Quản lý Domain | Thêm / sửa / xóa website cần theo dõi |
| Lịch sử kiểm tra | Xem kết quả từng lần kiểm tra, ảnh & video |
| Từ khóa (Keyword) | Danh sách từ khóa dùng để tra hạng Google |
| Proxy | Danh sách IP trung gian để ẩn danh khi kiểm tra |
| Máy chạy (Server) | Theo dõi trạng thái các máy đang thực thi |
| Người dùng | Quản lý tài khoản, phân quyền |
| Whitelist | Danh sách website được loại trừ khỏi kiểm tra |
| Reported Domain | Domain đã bị báo cáo / cần chú ý đặc biệt |
| Check Confirm | Yêu cầu xác nhận thủ công (khi cần duyệt) |
| Ranking | Theo dõi thứ hạng domain trên công cụ tìm kiếm |
| Thống kê | Dashboard tổng hợp số liệu theo ngày |
| Export / Báo cáo | Tải dữ liệu ra file Excel |
5. Lịch chạy tự động (Scheduler)#
Hệ thống tự chạy các tác vụ theo lịch, không cần ai bật tay:| Thời điểm | Việc hệ thống tự làm |
|---|
| Hàng ngày (sáng sớm) | Quét domain, kiểm tra hàng loạt |
| Hàng ngày | Cập nhật thống kê, đếm số lượng bị chặn |
| Hàng ngày | Gửi báo cáo ranking qua email / Telegram |
| Hàng tuần | Tổng hợp báo cáo ranking theo tuần |
| Liên tục | Kiểm tra sức khoẻ proxy, đồng bộ whitelist |
6. Hàng đợi công việc (Queue)#
Khi có nhiều domain cần kiểm tra cùng lúc, hệ thống xếp hàng thay vì làm tất cả một lúc (tránh quá tải).Hàng đợi "PushCheckDomain" → Kiểm tra trạng thái website
Hàng đợi "PushRecordDomain" → Ghi video + chụp ảnh website
Ưu tiên cao: Việc do nhân viên bấm tay → được xử lý trước
Bình thường: Việc do lịch tự động → xử lý theo thứ tự
7. Thông báo & giám sát#
Telegram: Gửi cảnh báo tức thì khi có lỗi nghiêm trọng
Log file: Ghi chi tiết mọi hoạt động để team kỹ thuật điều tra
Horizon Dashboard: Giao diện xem hàng đợi đang chạy / tắc
Redis Cache: Lưu tạm thông tin máy chạy để phân công nhanh hơn
8. Kết nối với các source khác#
admin (Vue.js)
│ Giao tiếp qua REST API (HTTPS)
▼
[ api — Laravel ] ◄──────────────────────────────────────┐
│ │
│ Phân công lệnh kiểm tra Nhận kết quả về │
▼ (Webhook callback) │
tool-check ──────────────────────────────────────────────►│
tool-recordvideo ────────────────────────────────────────►│
9. Tóm tắt nhanh#
api giống như trưởng phòng điều phối: nhận yêu cầu từ quản lý (giao diện admin), lập kế hoạch, phân công cho các nhân viên thực thi (tool-check, tool-recordvideo), và tổng hợp kết quả để báo cáo lại.
Modified at 2026-03-31 05:44:40