Skip to content

Laravel Horizon

Nguồn gốc: Bản dịch từ Laravel Horizon

Giới thiệu (Introduction)

Laravel Horizon cung cấp giao diện dashboard đẹp mắt và hệ thống cấu hình cho queue Redis của Laravel. Horizon cho phép giám sát throughput, runtime, lỗi job trong hệ thống queue một cách trực quan.

Horizon lưu toàn bộ cấu hình queue worker trong một file config duy nhất, dễ dàng chia sẻ với team.

Cài đặt (Installation)

bash
composer require laravel/horizon

Publish assets:

bash
php artisan horizon:install

Configuration

File config/horizon.php cho phép cấu hình queue worker. Mỗi option có mô tả mục đích — nên xem kỹ.

Horizon sử dụng "environments" (production, local...) với "supervisors" cho mỗi environment, mỗi supervisor có cấu hình worker riêng.

Dashboard Authorization

Horizon dashboard truy cập tại /horizon. Mặc định chỉ truy cập được trong môi trường local. Dùng Horizon::auth() để định nghĩa authorization cho môi trường khác.

Max Job Attempts và Timeout

Cấu hình số lần thử lại và timeout cho job.

Job Backoff

Cấu hình thời gian chờ giữa các lần retry.

Silenced Jobs

Ẩn job không quan trọng khỏi dashboard.

Balancing Strategies

Auto Balancing

Horizon tự động phân phối worker giữa các queue dựa trên workload.

Simple Balancing

Phân phối worker đều giữa các queue.

No Balancing

Giữ nguyên số worker như cấu hình.

Chạy Horizon (Running Horizon)

bash
php artisan horizon

Tạm dừng / tiếp tục:

bash
php artisan horizon:pause
php artisan horizon:continue

Dừng:

bash
php artisan horizon:terminate

Deploying Horizon

Dùng Supervisor hoặc process manager để giữ Horizon chạy. Khi deploy, terminate Horizon để chạy lại với code mới.

Tags

Horizon cho phép gán "tag" cho job, giúp tìm kiếm và lọc trong dashboard.

Notifications

Cấu hình Horizon gửi thông báo khi queue wait time quá dài.

Metrics

Dashboard hiển thị job và queue metrics: throughput, runtime.

Xóa Failed Jobs

Xóa failed job qua dashboard hoặc Artisan command.

Xóa Jobs khỏi Queue

bash
php artisan horizon:clear