在php artisan队列中达到--memory限制时会发生什么:使用Beanstalkd监听

时间:2014-07-23 15:56:29

标签: laravel laravel-4 queue beanstalkd

我正在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号;我对么?

1 个答案:

答案 0 :(得分:3)

没有。改变你的代码不会有任何魔力。它将做的是在任务完成后安全地退出任务,并允许它与新工作人员一起重新启动。

通常情况下,您可以使用memory_limit = -1(尽可能多地)运行命令行任务 - 这可能很有用,但您还需要能够恢复其他进程才能使用它。

请参阅:\ Illuminate \ Queue \ Listener :: runProcess(Process $ process,$ memory);