我正在NGINX上创建一个带有MySQL数据库的Laravel 4.2应用程序。我正在尝试研究使用队列在任何给定时间减少CPU使用率的选项。
我希望任何排队的任务都能保持在一定的内存使用水平下;
但我不明白的是,如果正在运行的任务超出--memory
php artisan queue:listen
php artisan -h queue:work
参数The memory limit in megabytes (default: 128)
设置的限制,实际会发生什么。
如果我跑
{{1}}
在我的开发终端中,它只是定义了
{{1}}
但它没有说明如果该任务试图破坏该限制将会发生什么。
我认为可能会发生两件不同的事情:
1)它将导致队列失败并最终在我失败的队列表
上2)它将以某种方式限制来自服务器的处理能力以完成任务
我希望它是2号;我对么?
答案 0 :(得分:3)
没有。改变你的代码不会有任何魔力。它将做的是在任务完成后安全地退出任务,并允许它与新工作人员一起重新启动。
通常情况下,您可以使用memory_limit = -1
(尽可能多地)运行命令行任务 - 这可能很有用,但您还需要能够恢复其他进程才能使用它。
请参阅:\ Illuminate \ Queue \ Listener :: runProcess(Process $ process,$ memory);