Mar*_*ala 7 php symfony laravel laravel-5 laravel-horizon
我在Horizon中使用Laravel队列和Redis。主管正在运行artisan horizon,这反过来会产生进程/usr/bin/php7.2 artisan horizon:work redis
是否需要完全运行queue:work,或者Horizon 是否可以自行处理队列?
安装了Horizon后,Artisan queue:work和horizon:work命令执行相同的任务,除了horizon:work接受用于与Horizon主管协调的参数。
在运行Horizon Supervisor流程(通过artisan horizon)时,我们不需要horizon:work手动执行。该horizon:work命令启动队列工作程序进程,并且主管在设置工作程序池时自动运行它。
通过主管,我的意思是地平线管理器进程,而不是系统的supervisord我们用它来启动地平线作为一种服务。
实际上,horizon:work标记为隐藏,所以我们甚至在所示的可用命令中都看不到它artisan list。
我们仍然可以artisan queue:work手动执行以运行不受Horizon管理的单个独立队列工作器。
该artisan queue:work --once <connection>命令更有用- 该命令处理队列中的下一个挂起的项目,并且可以帮助调试开发中行为异常的作业。
为了使此方法有效,我们需要在停止所有长时间运行的队列工作器之后运行它,以便我们可以控制作业的执行时间。Horizon使这个变得容易:
php artisan horizon:terminate
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
717 次 |
| 最近记录: |