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