Laravel 消息队列被 Killed

在测试导入5000-10000条excel数据到数据库,中间需要做数据处理,比较耗时,为了有比较好的用户体验,采用了异步机制,用户点击后,后台启动消息队列来处理。但是,总是处理不完消息队列就被Killed了,查了好几天都查不出原因。求大神指点指点!
网上说都是内存不够
1、内存不够
方法1是查看linux 系统日志.
vi /var/log/messages
如果出现 kernel: Out of memory: Kill process意味着整个系统的内存已经不足,如果不杀死进程的话,就会导致系统的崩溃.
查了该日志,没有提示内存不够。我在代码层面监控内存也是没有不够的。整个消息队列运行过程都只用47M左右的内存。我的服务器有2G的内存。
2、程序出错
查看了laravel所有日志、队列日志均未发现报错信息。我抽程序出来使用浏览器单独运行可以运行到底,说明了不会是运行过程中数据导致的bug。
我没什么招了,请各路大侠支个招吧!

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 14

如何确定被 Killed?建议在命令行内手动运行队列处理器,看一下能不能复现问题。

5年前 评论
leo

有种可能是超过了 Laravel 队列的内存限制(默认 128M):

php artisan queue:work --memory=512
5年前 评论

@Wi1dcard 是在命令行收到运行处理器,问题一再重现。就是不知道问题出于哪里。所有日志都翻遍了,都看不到任何有关的信息。

5年前 评论

@leo
php artisan queue:work --memory=512
php artisan queue:work --memory=1024
都试过了,问题依旧。

5年前 评论

@how2elegant 在命令行运行处理器,出现问题时没有任何报错提示,直接退出回到 Shell?

5年前 评论
hehhl 4年前
hehhl 4年前
aa24615

我也遇到过,好烦人啊

4年前 评论

我今天也碰到这个问题了,我的情况是超时了, --timeout[=TIMEOUT] The number of seconds a child process can run [default: "60"] 默认是60秒,我改长了就流畅执行了

4年前 评论
vilson 4年前
lht512701 4年前

队列默认超时时间60是,长任务要自己设置超时时间 $timeout

2年前 评论

file 遇到类似问题,楼主解决了吗?

1年前 评论
chowjiawei

我也遇到了 真奇怪

2个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!