工匠排队:工作与工匠视界有什么区别:工作?

时间:2018-02-14 14:00:04

标签: php laravel symfony laravel-5 laravel-horizon

我正在使用Laravel队列和Redis with Horizo​​n。 主管正在运行artisan horizon,这反过来会产生进程/usr/bin/php7.2 artisan horizon:work redis

是否需要运行queue:work或者Horizo​​n是否已经自行处理队列?

1 个答案:

答案 0 :(得分:4)

安装Horizo​​n后,Artisan queue:workhorizon:work命令执行相同的任务,但horizon:work接受用于与Horizo​​n主管协调的参数。

运行Horizo​​n管理程序进程(通过artisan horizon)时,我们永远不需要手动执行horizon:workhorizon:work命令启动队列工作进程,主管在设置工作池时自动运行它。

通过主管,我指的是Horizo​​n管理器流程,而不是我们用来启动Horizo​​n即服务的系统 supervisord

事实上,horizon:work被标记为隐藏,因此我们甚至不会在artisan list显示的可用命令中看到它。

我们仍然可以手动执行artisan queue:work来运行一个不受Horizo​​n管理的独立队列工作。

artisan queue:work --once <connection>命令更有用 - 它处理队列中的下一个待处理项,可以帮助调试开发中的行为不端的作业。

为了使其生效,我们需要在停止任何长时间运行的队列工作程序后运行它,以便我们可以控制作业执行的时间。 Horizo​​n让这一切变得简单:

php artisan horizon:terminate