首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >队列中的CPU使用问题

队列中的CPU使用问题
EN

Stack Overflow用户
提问于 2017-04-08 21:59:50
回答 5查看 1.7K关注 0票数 3

我有上的Linux计划

下面是Kernel.php文件中的方法。

代码语言:javascript
复制
protected function schedule(Schedule $schedule)
{
    $schedule->command('queue:listen')->everyFiveMinutes()->withoutOverlapping();
}

我已经共享了Godaddy的托管帐户,并使用cron作业作为Laravel队列。我不能使用Supervisor队列,因为它们不允许对我的计划进行SSH根访问。下面是截图。我关心CPU的使用和进程的数量。

我的代码使用队列发送电子邮件进行注册。就这样。没有其他事情是使用队列。对于php artisan命令,Cron作业每30分钟后运行一次。在第一次运行之后,time.it显示了上面的统计数据。

我做错什么了吗?

4-5小时后,它消耗了100%的CPU。

EN

回答 5

Stack Overflow用户

发布于 2017-06-26 13:43:42

这是错误的。您应该从不通过cron调度程序调用queue:listen,否则您将得到意外的行为,就像您所发生的事情一样。在本例中,听起来您正在生成多个队列侦听器。

您应该将queue:listen配置为永远作为守护进程运行。如果您无法通过GoDaddy访问主管,请切换到真正的服务器提供程序,如DigitalOcean或Linode --并使用它。

票数 6
EN

Stack Overflow用户

发布于 2017-04-12 06:18:50

我把这个要点放了一段时间(看一下叉子信息,看看原来的作品)来解决同样的问题。除了能够运行exec()之外,它不需要太多,还需要定期重新启动队列,这是特定项目所需要的,但实际上并不是一般的需求。

https://gist.github.com/muihlinn/bcb17fc0b6425bcb6f26ac907bc91c10

备注:由于某种原因,的队列: restart命令没有重新启动队列,只是终止了队列,因此代码中的两个调用都被终止了。

票数 2
EN

Stack Overflow用户

发布于 2017-06-28 06:25:32

正如劳伦斯所写的,队列:倾听不能每5分钟启动一次,因为它一直在运行,永远是后台。

尝试一下这个要点,它可能有助于解决您的问题,而不需要切换主机提供商:

https://gist.github.com/sea-reel/3550cfe44c15d8f8878b34adf5814b15 (Laravel 5 Artisan处理整个队列和出口命令)

因此,在gist中添加命令之后,您的日程安排应该如下所示:

代码语言:javascript
复制
protected function schedule(Schedule $schedule)
{
    $schedule->command('work-and-exit')->everyFiveMinutes()->withoutOverlapping();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43300790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档