Laravel工匠队列 – 高cpu使用
我在Laravel中设置了队列来处理我的处理脚本.
我使用beanstalkd和supervisord. 有6种不同类型的加工管. 问题在于,对于每个管,工匠每秒不断产卵. 我尝试将1秒钟的睡眠改为10秒. 当我在浏览器中刷新页面,并且盘旋在10%左右的时候,我还测试了看到laravel的cpu使用情况.现在我正在一个低端机架空间实例,这样可以解释它,但仍然…工人们每次醒来时,都会举起一个筏子实例. 有没有办法解决这个问题?我只需要把一大笔钱投入更昂贵的服务器,才能听到工作是否准备好了吗? 编辑: 找到一个解决方案…它是不使用手工队列:侦听器或队列:工作 相反,我用自己的听众写了自己的听众. 现在我的cpu用于我的听众是在%0,我的cpu现在出现的唯一的时间是它实际上找到工作,然后触发该命令,我很好. 解决方法
高CPU的问题是因为工作人员在每次检查队列中的作业时加载完整的框架.在laravel 4.2中,可以使用php工匠队列:work –daemon.这将加载框架一次,并且工作的检查/处理发生在一个while循环内,这让CPU呼吸容易.您可以在官方文档:
http://laravel.com/docs/queues#daemon-queue-worker中找到有关守护进程工作人员的更多信息.
但是,这个优点带来了一个缺点 – 在部署代码时需要特别注意,并且必须处理数据库连接.通常,长时间运行的数据库连接断开连接. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |