1. Bussiness Logic
One Push
  • Tổng Quan
  • Bussiness Logic
    • ĐẶC TẢ KỸ THUẬT: HỆ THỐNG ĐIỀU PHỐI TIN NHẮN (PUSH ENGINE)
    • ĐẶC TẢ KỸ THUẬT: HỆ THỐNG ĐỒNG BỘ HEARTBEAT (REAL-TIME SYNC)
    • ĐẶC TẢ KỸ THUẬT: HỆ THỐNG ĐIỀU PHỐI TIN NHẮN (PUSH ENGINE)
    • Business Logic (Luồng Logic Nghiệp Vụ)
  • Project
    • API
      • Hướng dẫn sử dụng
        • 1.1 Khởi tạo Website Tham gia
        • 1.2 Cấu hình Bots Telegram
        • 1.3 Quản lý Chiến dịch (Campaigns)
        • 1.4 Lên Lịch Gửi Tự Động
        • 1.5 Tương tác & Thống kê
        • 1.6 Quản lý Tài khoản (RBAC)
        • 1.7 Báo cáo Chi tiết Tin nhắn (Web & Telegram)
      • Architecture
        • System Architecture (Kiến trúc Hệ thống)
        • Code Structure
        • Database Schema (Mô hình Dữ liệu)
      • Deployment
        • Local
        • Production
        • Development
      • API
        • Widget nhúng Website
          • Đăng ký Subscriber mới / Nhật ký Heartbeat
          • Cập nhật trạng thái Seen/Read
          • Ghi nhận hiển thị Alert Popup
          • Lấy dữ liệu Alert cho website
        • Tracking & Tương tác
          • Ghi nhận lựa chọn Yes/No
        • Báo cáo & Thống kê
          • Thống kê người dùng Real-time
          • Phân tích tăng trưởng Subscriber
          • Dữ liệu bản đồ nhiệt Vị trí
          • Xuất báo cáo thông báo Excel
        • Lịch gửi Thông báo
          • Danh sách lịch gửi thông báo
          • Tạo lịch gửi mới
          • Bật/Tắt lịch gửi
        • Betting Tips
          • Lấy Tip bóng đá HOT nhất
          • Lấy dữ liệu Mock Tip (Test)
        • Telegram Integration
          • Danh sách Telegram Bot
          • Telegram Webhook Endpoint
        • Email Marketing
          • Tạo và gửi chiến dịch Email
        • Hệ thống & RBAC
          • Danh sách tài khoản Admin/Nhân viên
          • Danh sách vai trò (Roles)
        • Tiện ích & Files
          • Truy xuất nhật ký hệ thống (System Logs)
        • Chiến dịch (Campaigns)
          • Danh sách chiến dịch
        • Website Khách hàng (Clients)
          • Danh sách website khách hàng
        • Quản lý Thành viên (Subscribers)
          • Danh sách người đăng ký (Subscribers)
          • Xóa người nhận tin
    • TOOL
      • Hướng dẫn sử dụng
        • Hướng dẫn sử dụng — Novu Notification Infrastructure
      • Architecture
        • System Architecture
        • Code Structure
        • Database Schema
      • Deployment
        • Deployment
      • API
        • 👥 Subscribers
          • Tạo/Cập nhật Subscriber
          • Cập nhật Profile
        • 🗺️ Workflows
          • Lấy danh sách Workflow Templates
          • Chi tiết Workflow
        • 📂 Notification History
          • Lịch sử biến động Notification
        • 🎯 Topics
          • Tạo Topic mới
        • 📐 Layouts
          • Lấy danh sách Layout (Email/Web)
        • 💬 Messages
          • Tra cứu vết tin nhắn chi tiết (Low-level)
        • 🔌 Integrations
          • Danh sách nhà cung cấp (Providers)
        • 🚀 Events & Triggers
          • Kích hoạt thông báo (Workflows)
          • Kích hoạt hàng loạt (Bulk Trigger)
  • Schemas
    • GenericResponse
  1. Bussiness Logic

ĐẶC TẢ KỸ THUẬT: HỆ THỐNG ĐIỀU PHỐI TIN NHẮN (PUSH ENGINE)

ĐẶC TẢ KỸ THUẬT: HỆ THỐNG ĐIỀU PHỐI TIN NHẮN (PUSH ENGINE)#

Route: `/manage/notification-schedule`
Source Frontend: `resources/views/manage/clients/noti_create_or_edit.blade.php`
Source Backend: `app/Http/Controllers/Client/NotificationScheduleController.php`
Database: MySQL (Bảng `notification_schedules`, `notification_schedule_logs`, `subcribers`)

MỤC LỤC#

1.
I. Tổng quan chức năng & Vòng đời Schedule
2.
II. Kiến trúc xử lý Hàng đợi (Queue Architecture)
3.
III. Chi tiết kỹ thuật Frontend (Component View)
III.1. Khởi tạo & Validation
III.2. Logic chọn Đối tượng (Targeting)
4.
IV. Logic đặc biệt: Betting Push (Kèo Bóng Đá)
5.
V. Backend: Luồng thực thi Job (Job Execution)
V.1. Cơ chế Chunking dữ liệu khổng lồ
V.2. Thuật toán Retry & Fail-safe
6.
VI. Kiểm soát Hiệu năng & Thắt nút cổ chai (Bottlenecks)

I. Tổng quan chức năng & Vòng đời Schedule#

Hệ thống điều phối tin nhắn chịu trách nhiệm gửi hàng triệu Push Notifications mỗi giây thông qua FCM (Firebase Cloud Messaging) và Telegram API. Toàn bộ quy trình diễn ra không đồng bộ (Asynchronous) thông qua Laravel Horizon.
Vòng đời (Lifecycle):
1.
Pending: Admin vừa lưu, đang chờ đến đúng giờ hoặc chờ Worker nhặt.
2.
Processing: Worker đang bốc tách danh sách Subscriber (PAM IDs) và bắn API.
3.
Completed: Đã hoàn thành gửi cho 100% đối tượng mục tiêu.
4.
Failed: Gặp lỗi API Token hết hạn hoặc server đích từ chối.

II. Kiến trúc xử lý Hàng đợi (Queue Architecture)#

Chúng tôi sử dụng mô hình Fan-out để tối ưu hóa tốc độ:
1.
Master Job: Phân tích Lịch gửi -> Tìm kiếm hàng triệu PAM IDs phù hợp.
2.
Child Jobs: Chia nhỏ danh sách (Chunks) mỗi đợt 500-1000 IDs.
3.
Workers: Chạy song song hàng chục Worker để đẩy tin lên Firebase đồng thời.

III. Chi tiết kỹ thuật Frontend#

Giao diện được xây dựng bằng Blade Template kết hợp jQuery/AJAX để đảm bảo tính real-time khi chọn Website.
III.1. Khởi tạo: Khi mở Modal, hệ thống tự động kéo danh sách tất cả Client đang Active.
III.2. Targeting: Một Schedule có thể gán cho toàn bộ Client hoặc tích chọn thủ công. Logic Backend sẽ thực hiện `WHERE IN` trên bảng `subcribers` để lọc tập Device Token.

IV. Logic đặc biệt: Betting Push (Kèo Bóng Đá)#

Tính năng độc quyền cho mảng Thể thao:
Data Source: Tự động đồng bộ từ T3 Platform API.
Auto-Formatting: Nếu chọn loại `Betting`, hệ thống tự động chèn Logo 2 đội bóng, Tỷ lệ chấp (Handicap) và Odds vào Payload gửi đi.
Deep Link: Khi người dùng Click, trình duyệt sẽ nhảy thẳng vào trang Cược của trận đấu tương ứng.

V. Backend: Luồng thực thi Job#

Tập trung tại `app/Jobs/SendNotification.php`.
V.1. Chunking: Sử dụng `chunkById` để tránh Memory Leak khi xử lý hàng triệu Subscriber cùng lúc.
V.2. Fail-safe: Nếu FCM trả về mã lỗi `NotRegistered`, hệ thống tự động đánh dấu Subscriber đó là `Inactive` để không tốn tài nguyên gửi ở lần sau.

VI. Kiểm soát Hiệu năng#

Redis Cache: Lưu cache Token Website để không phải Query MySQL mỗi lần bắn tin.
Rate Limiting: Giới hạn số lượng Request lên Telegram API (30 req/s) để tránh bị Ban IP.
Modified at 2026-03-27 03:49:16
Previous
ĐẶC TẢ KỸ THUẬT: HỆ THỐNG ĐỒNG BỘ HEARTBEAT (REAL-TIME SYNC)
Next
Business Logic (Luồng Logic Nghiệp Vụ)
Built with