laravel horizon 并不取代标准队列系统,而是构建在其之上;你仍需保留 `config/queue.php` 配置,但可移除 `queue:work` 的 supervisor 进程配置,改用 `horizon:work` 统一管理。
Laravel Horizon 是 Laravel 官方推出的高性能队列监控与管理解决方案,它不是独立的队列驱动,而是一个基于原生队列系统的增强层。这意味着:
在生产环境部署时,Supervisor 配置需做关键调整:
; ✅ 正确:仅保留 Horizon 的 Supervisor 配置(示例) [program:laravel-horizon] process_name=%(program_name)s command=php /var/www/myapp/artisan horizon autostart=true autorestart=true user=www-data redirect_stderr=true stdout_logfile=/var/www/myapp/storage/logs/horizon.log
; ❌ 移除:不再需要单独的 queue:work 进程(避免重复消费) ; [program:laravel-queue-worker] ; command=php /var/www/myapp/artisan queue:work --sleep=3 --tries=3 ; ...
⚠️ 注意事项:
),因此无需额外守护 queue:work; 总结来说:Horizon = Laravel 队列 + Redis + 实时监控 + 智能调度。它强化而非替代底层队列机制,合理配置 queue.php 并统一使用 horizon:work,才能发挥其最大价值。