我在共享主机服务上安装了Laravel 5.6应用程序。但是我的托管公司对我的应用程序的CPU使用率不满意。无论我是手动还是通过cron作业杀死该工作线程,在杀死队列工作线程时都会显示出很高的CPU使用率。 有人可以解释一下为什么“ php artisan queue:restart”需要这么多的CPU时间吗?如果可能的话,我该如何减少?
重新启动:
cd /home/xxxxxx/rdw_laravel/; /usr/local/bin/php72 artisan queue:restart >/dev/null 2>&1
激活队列工作器:
cd /home/xxxxxx/rdw_laravel/; /usr/local/bin/php72 artisan queue:work --daemon
答案 0 :(得分:0)
您似乎有内存泄漏,请继续阅读memory。
直接从文档中了解如何运行队列工作器:
守护进程队列工作程序在处理每个作业之前不会“重新启动”框架。因此,每项工作完成后,您应该释放大量资源。例如,如果要使用GD库进行图像处理,则完成后应使用imagedestroy释放内存。
替代方法是使用queue:listen
,不同之处在于:work
一次启动并永久运行,而:listen
则在每个作业之前启动。
注意:
queue:work
和queue:work --daemon
相等,因此您不必使用带有--daemon
标志的cron。
注意:为什么您经常运行
:restart
?我怀疑您每天都更新代码,因此仅在更新代码时使用:restart
。
What is the difference between queue:work --daemon and queue:listen