1. Tool Check
Domain Tool
  • Tổng quan
  • Business | Logic
    • Admin Business Logic
    • Worker & Automation Business
    • Integration & Reliability Business
    • API INTERFACE & TASK MANAGEMENT
    • SYSTEM BUSINESS OVERVIEW
  • Project
    • ADMIN
      • Tổng quan
      • Architecture
        • Database Schema
        • System Architecture
        • Code Structure
      • Deployment
        • Local
        • Staging
        • Product
      • Hướng dẫn sử dụng
        • Tổng quan
        • Đăng nhập
        • Kiểm tra tự động
        • Kiểm tra thủ công
        • Xếp hạng thủ công
        • Xác nhận kiểm tra
        • Xếp hạng tự động
        • Quản lý từ khóa xếp hạng
        • Kiểm tra whitelist
        • Quản lý từ khóa
        • Truy vết tên miền
        • Quản lý volume từ khóa
        • Kiểm tra domain sở hữu
        • Lịch sử check domain
        • Kiểm tra và view source
        • Kiểm tra thương hiệu tên miền
        • Quản lý người dùng
        • Server
    • API
      • Tổng quan
      • Architecture
        • Database Schema
        • System Architecture
        • Code Structure
      • Deployment
        • Staging
        • Product
        • Local
      • API Interface
        • Public API
          • Xác thực
            • login
            • refresh token
          • Thông tin đăng nhập
            • get current user
            • changePasswordUser
          • Quản lý người dùng
            • getUserList
            • createUser
            • getUserItem
            • updateUser
            • deleteUser
            • updateActive
            • Update FCM Token
          • Quản lý từ khóa
            • Get list of Keywords
            • createKeyword
            • getKeywordItem
            • updateKeyword
            • deleteKeyword
            • deleteKeyword
            • totalKeywordBranchGroup
          • Quản lý Proxy
            • Get all Proxies
            • createProxy
            • getProxyItem
            • updateProxy
            • deleteProxy
            • getActiveProxyList
          • Branch
            • getBranchList
            • createBranch
            • getBranchItem
            • updateBranch
            • deleteBranch
          • Check Brand Domain Histories
            • Get list of Check Brand Domain Histories
            • export Check Brand Domain Histories Data
            • checkBrandDomainHistoriesCopy
            • Import data from Excel
            • exportSampleImportFile
          • Check Confirm
            • List Check Confirms
            • Create Check Confirm
            • Bulk create Check Confirms
            • Show Check Confirm
            • Approve or update confirm detail
            • Delete Check Confirm
            • Approve Check Confirm
            • Approve or Reject Check Confirm
            • List approvers
          • Check Owned Domain
            • Check owned domain
          • Check View Source
            • List current user's check view source histories
            • Check view source for domains
            • Delete all histories of current user
          • Tên Miền Công Ty
            • Get a list of company domains
            • Create a new company domain
            • Get a specific company domain
            • Update a specific company domain with tags
            • Delete a specific company domain
            • Import Whitelist Domains from Excel
            • deleteBulkWhitelistDomain
            • Delete company domains by tag ID
          • Xuất dữ liệu excel
            • Export company domains
            • autoCheckDomainRdrExport
            • exportExcelHistoryCheck
            • exportExcelHistoryRecord
            • autoCheckHistoryDomainRecordExport
            • AutoCheckHistoryDomainCheckExport
            • export Keyword Data
            • autoCheckKeywordExport
            • exportKeywordVolumes
            • exportTrackingDomain
            • exportExcelManualRankingKeywordHistory
            • exportExcelManualSessionHistoryCheck
            • exportExcelRankingDomainHistory
            • exportCompareProxies
            • export Ranking Keyword Data
            • autoCheckRankingKeywordExport
            • exportSampleImportFile
            • exportExcelRankingKeywordHistory
            • exportExcelRankingHistory
            • exportExcelDomainRankingHistory
            • exportExcelWhiteListDomainBlock
            • WhitelistBlockExportSampleImportFile
            • exportSampleImportFile
            • ExportWhitelistByTag
          • Copy
            • Copy company domains
            • autoCheckDomainRdrCopy
            • autoCheckHistoryDomainRecordCopy
            • autoCheckHistoryDomainCheckCopy
            • autoCheckKeywordCopy
            • copyKeywordVolumes
            • copyTrackingDomain
            • copyManualRankingKeywordHistory
            • copySessionHistory
            • copySessionHistory
            • manualUploadFileCopy
            • copyRankingDomainHistory
            • autoCheckRankingKeywordCopy
            • copyRankingKeywordHistory
            • copyRankingHistory
            • copyWhiteListDomainBlock
            • copyWhitelistByTag
          • Nhà cung cấp proxy
            • getDataUsageHistory
            • getProxyProviderList
            • createProxyProvider
            • getProxyProviderItem
            • updateProxyProvider
            • deleteProxyProvider
            • updateSortProxyProvider
            • getProviderProxyCombine
            • createProxyProvider
            • detailProviderProxyCombine
            • updateProxyProvider
            • deleteProviderProxyCombine
          • Quản lý Domain
            • getDomainList
            • createDomain
            • getDomainItem
            • updateDomain
            • deleteDomain
          • Chạy thủ công
            • Run Manual Domain
            • Run Manual Check Domain
            • Run Retry Record Domain
            • Run Retry check Domain
            • Run Manual Domain By Type
            • Run Manual Keyword
          • Domain Check Redirect
            • createDomainCheckRDR
            • getDomainCheckRDRItem
            • updateDomainCheckRDR
            • deleteDomainCheckRDR
            • createHistoryDomainCheck
            • updateHistoryDomainCheck
            • deleteHistoryDomainCheck
            • getListWebByKeyword
            • getListAppByKeyword
            • getListAdsByKeyword
            • getDomainCheckRDRList
          • Quản lý summary
            • Get Domain Wiki Statistics
            • Get Domain Wiki Details
            • Export Domain Wiki Data
            • Copy Domain Wiki List
            • Get Domain Wiki Chart Data
            • Get Summaries
            • Get Auto Summaries
            • Get ranking Summaries
          • External API
            • Create external record domain task
          • Flow
            • stop current flow search domain
            • start current flow search domain
            • get metric flow
            • Get domain RDR processing metrics
            • Get keyword processing metrics
            • Get status auto
          • Group
            • getGroupList
            • createGroup
            • getGroupItem
            • updateGroup
            • deleteGroup
          • Lấy lịch sử check domain
            • getHistoryDomainCheckList
            • getHistoryDomainRecordList
            • getHistoryDomainCheckItem
            • getHistoryDomainRecordItem
            • getHistoryDomainChart
            • getHistoryDomainRecordListV2
          • Ranking Keyword
            • setTimeToRunAutoKeyword
            • postRankingDomainHistory
            • compareProxiesDomainHistory
            • compareProxiesDomainHistoryCopy
            • getChartRankingDomainHistory
            • restartRankingDomainHistory
            • Get list of Ranking Keywords
            • createRankingKeyword
            • getRankingKeywordItem
            • updateRankingKeyword
            • deleteRankingKeyword
            • deleteRankingKeyword
            • totalRankingKeywordBranchGroup
            • Get keyword ranking metric
            • retryRankingKeyword
            • Update Order
            • Import data from Excel
            • Update Order by filter
            • deleteAllRankingKeyword
            • getRankingKeywordHistory
            • setTimeToRunAutoRanking
            • getTimeRunAutoRanking
            • Get ranking group list
          • Quản lý Keyword volume
            • 8ceaf215c302596b08d25b1e12e7ab45
            • Get maximum search volume
          • Quản lý Activities
            • getLogs
            • getLogs
            • trackingDomain
          • Manual Ranking Keyword
            • Get manual ranking keyword histories
            • Get manual ranking keyword history metric
            • GetJsonFileRanking
            • Get ranking group list
          • Quản lý Manual
            • Get list of Manual session domain
            • create manual session domain
            • Get Manual session domain
            • Update list manual session history by manual_sessions_id
            • deleteSession
            • Get list session history
            • Update manual session history by id
            • deleteSessionHistory
            • Get process of Process Manual session domain
            • Get session histories
            • Get statistics session history records
            • Get detailed session history records
            • Get Manual upload files
            • Create Manual upload files
            • Delete Manual upload files
            • deleteBulkManualUploadFiles
          • Ranking Branch
            • getRankingBranchList
            • createRankingBranch
            • getRankingBranchItem
            • updateRankingBranch
            • deleteRankingBranch
          • Ranking Group
            • getRankingGroupList
            • createRankingGroup
            • detailRankingGroup
            • updateRankingGroup
            • deleteRankingGroup
          • Reported Domains
            • getReportedDomainList
            • createReportedDomain
            • getReportedDomainItem
            • updateReportedDomain
            • deleteReportedDomain
            • deleteReportedDomain
            • deleteBulkReportedDomain
          • SearchEngine
            • getSearchEngineList
            • createSearchEngine
            • getSearchEngineItem
            • updateSearchEngine
            • deleteSearchEngine
          • Quản lý cụm Server
            • getServerList
            • createServer
            • getServerItem
            • updateServer
            • deleteServer
          • Statistics
            • getStatistics
          • Tag
            • getTagList
            • createTag
            • getTagItem
            • updateTag
            • deleteTag
            • deleteBulkTag
          • Webhook
            • Execute updateAfterRecordDomain action
            • Execute updateAfterRecordDomain action
            • Execute updateAfterRecordDomain action
            • Handle check confirm capture webhook
            • Execute updateAfterRecordDomain action
            • Execute externalRecordDomainSuccess action
            • Execute updateAfterRecordDomain action
            • Execute updateAfterRecordDomain action
            • Execute updateAfterCheckRankingDomain action
            • Execute updateDomainSearchRanking action
            • Execute updateDomainSearchRankingManual action
          • Quản lý whitelist domain block từ hệ thống
            • getWhiteListDomainBlockApiList
            • createWhiteListDomainBlockApi
            • getWhiteListDomainBlockApiItem
            • updateWhiteListDomainBlockApi
            • deleteWhiteListDomainBlockApi
            • deleteBulkWhiteListDomainBlockApi
          • Quản lý whitelist domain
            • getWhitelistDomainList
            • createWhitelistDomain
            • getWhitelistDomainList
            • getWhitelistDomainItem
            • updateWhitelistDomain
            • deleteWhitelistDomain
            • deleteWhitelistDomain
            • Import Whitelist Domains from Excel
            • deleteBulkWhitelistDomain
    • Tool Check
      • Tổng quan
      • Architecture
        • Database Schema
        • System Architecture
        • Code Structure
      • Deployment
        • Local
        • Staging
        • Product
      • API Interface
        • Public API
          • Public API
    • Tool Record
      • Tổng quan
      • Architecture
        • Database Schema
        • System Architecture
        • Code Structure
      • Deployment
        • Local
        • Staging
        • Product
      • API Interface
        • Public API
          • Task System
            • Get All Tasks
            • Create Task (List)
            • Create Task (Single)
            • Update Task
            • Delete Tasks
            • Count Processing Tasks
            • Get System Logs
            • Send single Task to Webhook
            • Send multiple Tasks to Webhooks
          • System Info
            • Root Details
            • Health Check
  1. Tool Check

Tổng quan

Tổng Quan Vận Hành — Source tool-check#

Vai trò: Máy kiểm tra — Thực thi kiểm tra website bằng trình duyệt thật
Công nghệ: Bun · Elysia · TypeScript · Puppeteer · MongoDB

1. Source này làm gì?#

tool-check là máy thợ của hệ thống — nó thực sự mở trình duyệt, truy cập từng website, và thu thập thông tin. Không có màn hình, không có giao diện, nó chạy âm thầm trên máy chủ.
Nhiệm vụ chính:
Nhận lệnh từ api (trung tâm điều phối)
Mở trình duyệt thật và truy cập website cần kiểm tra
Chụp ảnh màn hình để làm bằng chứng trực quan
Phân tích website: có hoạt động không, có bị chặn không, loại website gì
Gửi kết quả về api khi hoàn thành

2. Cấu trúc vận hành bên trong#

┌─────────────────────────────────────────────────────────────────┐
│                        SOURCE: tool-check                       │
│                                                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │              BỘ ĐIỀU PHỐI CÔNG VIỆC (Dispatcher)        │   │
│  │                                                         │   │
│  │  Liên tục hỏi DB: "Có task nào chờ xử lý không?"       │   │
│  │  Có task → Phân cho worker rảnh                         │   │
│  │  Hết slot → Chờ worker nào xong mới lấy task tiếp      │   │
│  └────────────────────────┬────────────────────────────────┘   │
│                           │ Phân công                          │
│           ┌───────────────┼───────────────┐                    │
│           │               │               │                    │
│           ▼               ▼               ▼                    │
│     ┌──────────┐   ┌──────────┐   ┌──────────┐                 │
│     │ Worker 1 │   │ Worker 2 │   │ Worker N │   (tối đa N)    │
│     │ (trình   │   │ (trình   │   │ (trình   │                 │
│     │  duyệt)  │   │  duyệt)  │   │  duyệt)  │                 │
│     └────┬─────┘   └────┬─────┘   └────┬─────┘                 │
│          │              │              │                        │
│          └──────────────┴──────────────┘                       │
│                         │ Kết quả                              │
│                         ▼                                      │
│              ┌─────────────────────┐                           │
│              │   BỘ GỬI KẾT QUẢ   │                           │
│              │     (Webhook)       │                           │
│              │  Báo về api trung   │                           │
│              │  tâm khi xong       │                           │
│              └─────────────────────┘                           │
└─────────────────────────────────────────────────────────────────┘

3. Vòng đời xử lý một task#

API trung tâm tạo "phiếu công việc" (task) trong MongoDB
        │
        ▼
Dispatcher phát hiện task mới đang chờ
        │
        ▼
Kiểm tra:  CPU < 70%?  RAM < 80%?  Còn slot trống?
        │
        ▼ Đủ điều kiện
Đánh dấu task "đang chạy" → giao cho Worker rảnh
        │
        ▼
Worker mở trình duyệt thật (Puppeteer)
  → Dùng proxy IP trung gian (để ẩn danh)
  → Truy cập website cần kiểm tra
  → Thu thập thông tin
        │
        ├── Chụp ảnh màn hình (screenshot)
        ├── Kiểm tra website có từ khóa không
        ├── Phát hiện chuyển hướng (redirect)
        └── Phân loại loại website (mainsite / satellite)
        │
        ▼
Worker hoàn thành → gửi kết quả về api qua Webhook
        │
        ▼
Worker báo "xong" → Dispatcher giao task tiếp theo

4. Hai loại kiểm tra chạy song song#

Kiểm tra Website (Check Website)#

Truy cập website, chụp ảnh, kiểm tra từ khóa, phát hiện redirect
Chạy liên tục theo thứ tự hàng đợi

Phân loại Loại Domain (Domain Type Check)#

Sau khi kiểm tra xong, hệ thống tiếp tục phân tích: website này là cờ bạc chính hay vệ tinh tin tức?
Quá trình này cũng dùng trình duyệt và proxy
Kết quả lưu lại để nhân viên xem trên admin

5. Hệ thống quản lý tài nguyên tự động#

Tool-check tự động theo dõi tình trạng máy chủ để không làm quá tải:
Điều kiệnHành động
CPU > 70%Dừng lấy task mới, chờ CPU hạ
RAM > 80%Dừng lấy task mới, chờ RAM hạ
Tất cả worker đang bậnChờ cho đến khi có worker nào xong
Task ưu tiên (manual)Được xử lý trước task thường

6. Kết nối dữ liệu#

MongoDB (nội bộ tool-check)
  → Lưu tạm danh sách task cần làm
  → Theo dõi task nào đang chạy, xong, lỗi

api (trung tâm)
  → Gửi task mới vào MongoDB
  → Nhận kết quả qua Webhook callback

Proxy (lấy từ api)
  → Dùng làm địa chỉ IP trung gian khi truy cập website
  → Tránh bị website nhận ra và chặn

AWS S3 (lưu trữ đám mây)
  → Ảnh chụp màn hình được upload lên đây

7. Thông báo lỗi#

Khi gặp sự cố, tool-check gửi cảnh báo qua Telegram ngay lập tức:
Webhook gửi thất bại → cảnh báo + thử lại
Không có proxy khả dụng → cảnh báo
Lỗi mở trình duyệt → thử lại tối đa 5 lần rồi ghi log lỗi

8. Các chế độ hoạt động#

Chế độMô tả
Tự động (Auto)Task do api tạo theo lịch hàng ngày, ưu tiên bình thường
Thủ công ưu tiên (Priority)Task do nhân viên bấm tay, được xử lý trước
RetryTask thất bại được tự động thử lại sau 60 giây
Old Running RecoveryKhi khởi động lại, hệ thống tự phục hồi các task bị gián đoạn

9. Tóm tắt nhanh#

tool-check giống như đội nhân viên thực địa: nhận phiếu công việc từ trưởng phòng (api), đi thực địa mở website kiểm tra, chụp ảnh bằng chứng, rồi báo cáo lại. Có bao nhiêu nhân viên (worker) thì làm được bấy nhiêu việc cùng lúc, không quá tải nhau.

Modified at 2026-03-31 05:45:55
Previous
deleteBulkWhitelistDomain
Next
Database Schema
Built with