IV. Hệ thống nền & Tác vụ tự động#
32. Cập nhật thông số video định kỳ#
Mục tiêu#
Tự động thu thập và cập nhật lượt xem, tương tác cho video đã gửi.
Cơ chế#
- Cron job crawl thông số video từ các nền tảng:
- Crawl YouTube:
crawl-content-youtube - Crawl TikTok:
crawl-content-tiktok+crawl-content-tiktok-self - Crawl Facebook:
crawl-content-facebook
- Crawl YouTube:
- Gọi Social Profile Service (AT-Core) để lấy metadata.
- Lưu kết quả vào
content-analytic-daily. - Cập nhật báo cáo: daily, weekly, monthly.
- Ghi log mỗi lượt crawl vào
content-crawl-histories.
Cron đã triển khai#
- Xóa lịch sử crawl cũ: mỗi 2 ngày
- Kiểm tra lại analytics: mỗi 4 giờ
- Audit content analytic: hàng ngày 04:00
33. Tính hoa hồng định kỳ#
Mục tiêu#
Tự động tính toán hoa hồng dựa trên hiệu suất video và cơ cấu thưởng.
Cơ chế#
- Backend lấy danh sách thử thách có cơ cấu hoa hồng (CampaignReward).
- Lấy video hợp lệ (APPROVED) thuộc các thử thách đó.
- So khớp video với reward structure → tính hoa hồng.
- Kiểm tra ngân sách trước khi lưu (xem mục 22).
- Nếu vượt 100% budget → không lưu hoa hồng.
- Ghi log kết quả.
Cron đã triển khai#
- Cập nhật event analytics daily: qua API trigger
- Rerun reward theo cấu hình
34. Giám sát ngân sách tự động#
Cơ chế#
- Cron mỗi 30 phút: kiểm tra ngưỡng budget cho mỗi chiến dịch.
- Gửi cảnh báo email (SendGrid) khi vượt mốc 75%, 95%, 100%.
- Tự động chặn submit content khi vượt 95%.
- Tự động ngừng tính hoa hồng khi vượt 100%.
35. Xử lý nội dung tự động#
Cơ chế#
- Auto reject content: Tự động từ chối content không hợp lệ (hàng ngày 03:45)
- Auto reject content not found: Từ chối content không tìm thấy trên nền tảng (hàng ngày 04:30)
- Warning tag: Tự động gắn cờ cảnh báo cho content vi phạm (hàng ngày 05:30)
- Content callback queue: Xử lý callback từ nền tảng qua Asynq queue
36. Hàng đợi xử lý bất đồng bộ (Asynq)#
Tác vụ đã triển khai#
- action_after_admin_change_status_content — Xử lý hậu cần khi admin đổi trạng thái content
- action_submit_content — Xử lý khi content được submit
Cấu hình#
- Priority queues: Critical (10), Default (3), Schedule (3)
- Max retry: 5-10 lần
- Task timeout: 30 phút
- Task retention: 24 giờ
37. Retry thanh toán & Kiểm tra trạng thái#
Cơ chế#
- Retry push withdraws to TOS: Mỗi 30 phút, retry đẩy lệnh rút tiền sang AccessTrade TOS
- Check campaign invoice status: Mỗi 15 phút (prod), kiểm tra trạng thái hóa đơn chiến dịch
- Check user social status: Mỗi giờ, kiểm tra trạng thái hồ sơ social
- Check Facebook status: Hàng ngày 01:00, kiểm tra trạng thái Facebook
38. Đánh giá nội dung bằng AI (Vertex AI)#
Mục tiêu#
Sử dụng AI để đánh giá chất lượng nội dung video dựa trên transcript.
Cơ chế#
- Video được trích xuất transcript (qua webhook transcript).
- Hệ thống gọi Google Vertex AI (Gemini API) để đánh giá transcript.
- Đối chiếu nội dung với tiêu chí chiến dịch.
- Kết quả: điểm số, độ phù hợp, vấn đề phát hiện, khuyến nghị.
- Kết quả AI được lưu phục vụ đối soát (reconciliation checklist).
Phạm vi#
- Tính năng hiện tại hỗ trợ đánh giá chất lượng nội dung phục vụ quy trình đối soát. Kết quả AI là dữ liệu tham chiếu cho admin, không tự động phê duyệt.
39. Webhook & Tích hợp bên ngoài#
Webhook đã triển khai#
| Webhook | Mô tả |
|---|---|
POST /content-callback | Callback khi content được cập nhật từ nền tảng |
POST /content-callback/tos | Callback từ AccessTrade TOS |
POST /content-callback/transcript | Callback khi transcript sẵn sàng |
POST /social-profiles/webhook | Cập nhật hồ sơ social |
POST /influencer-profiles/webhook/enrichment | Enrichment profile từ AT-Core |
POST /transcripts/webhook | Callback transcript |
Tích hợp bên ngoài#
| Dịch vụ | Mục đích |
|---|---|
| AT-Core (influence-meter) | Enrichment profile, thông số kênh, nhân khẩu học |
| Service TOS (AccessTrade) | eKYC, ký hợp đồng, rút tiền |
| Google Vertex AI | Đánh giá nội dung AI |
| SendGrid | Gửi email thông báo, cảnh báo |
| eSMS | Gửi SMS/OTP |
| Firebase (FCM) | Push notification mobile |
| Telegram | Alert cho admin |
| MinIO | Lưu trữ file (avatar, CCCD, export) |
| Google Drive | Lưu trữ hợp đồng |
| Elasticsearch | APM monitoring |