Laravel 处理一些密集计算任务的时候队列进程会被 kill 掉?
$ php artisan queue:work redis --queue=sosGen,uploadExcel --tries=1
[2017-07-24 13:39:42] Processing: App\Jobs\ShortageGenerate
[1] 5794 killed php artisan queue:work redis --queue=sosGen,uploadExcel --tries=1
环境是 homestead 的环境,也追不到任何的日志输出,有人解决过这个问题嘛?
通常情况下是 OOM 了,
php artisan queue:work --memory=1024
。如果还是被 Kill 则有可能是超出了虚拟机本身的内存,调出 virtualbox 把虚拟机内存调高@leo 我在 job 里面有写
ini_set('memory_limit', '1024M')
虚拟机本身的内存我给了4个G,按理说不应该的,请问php artisan queue:work --memory=1024
和直接在 job 中设置内存上限这两种做法有什么区别吗?@lybc
queue:work
会启动一个 deamon 进程,再有 deamon 进程去启动 worker 进程来处理 job,deamon 进程会监控 worker 进程的内存占用情况,如果超出了 --memory 的设置就会将其 kill 掉,而你的ini_set('memory_limit', '1024M')
并不会影响 deamon 进程的这个行为。@leo
原来默认的 memory 只给128M啊 = =,明白了,多谢leo大神
@leo 有没有遇到过这样的问题
@lybc core 的原因有很多,根据 dump 出来的文件追吧
你好,请问最后是怎么是怎么解决的哇,我设置的了 ,ini_set('memory_limit', '4096 M') 还是木有用