Laravel 在php artisan队列中达到内存限制时会发生什么:使用Beanstalkd进行侦听

Laravel 在php artisan队列中达到内存限制时会发生什么:使用Beanstalkd进行侦听,laravel,laravel-4,queue,beanstalkd,Laravel,Laravel 4,Queue,Beanstalkd,我正在使用NGINX上的MySQL数据库创建一个Laravel4.2应用程序。我试图研究在任何给定时间使用队列来减少CPU使用的选项 我希望任何排队的任务保持在一定的内存使用水平下 但我不明白的是,如果正在运行的任务超出了php artisan queue:listen(或work)的--memory参数设置的限制,实际会发生什么 如果我跑 php-artisan-h队列:工作 在我的开发终端中,它只是定义 以兆字节为单位的内存限制(默认值:128) 但它并没有说明如果该任务试图突破这一限制会发

我正在使用NGINX上的MySQL数据库创建一个Laravel4.2应用程序。我试图研究在任何给定时间使用队列来减少CPU使用的选项

我希望任何排队的任务保持在一定的内存使用水平下

但我不明白的是,如果正在运行的任务超出了
php artisan queue:listen
(或work)的
--memory
参数设置的限制,实际会发生什么

如果我跑

php-artisan-h队列:工作

在我的开发终端中,它只是定义

以兆字节为单位的内存限制(默认值:128)

但它并没有说明如果该任务试图突破这一限制会发生什么

我认为可能会发生两件不同的事情:

1) 这将导致队列失败,并最终出现在我的failed queues表中

2) 它将以某种方式限制服务器的处理能力来完成任务


我希望它是第二;我说得对吗

不。它不能改变你的代码。它将要做的是在任务完成后安全地退出任务,并允许使用新的工作人员重新启动任务

通常,您将使用
内存\u limit=-1
(根据需要)运行命令行任务,这可能很有用,但您还需要能够恢复这些任务,以便其他进程能够使用它


请参阅:\light\Queue\Listener::runProcess(进程$Process,$memory)

谢谢你,正是我所需要的。正是我在寻找的,亲爱的,谢谢你的问题和答案/