Laravel队列进程被kill的问题分析
19-11-27 23:28
字数 429
阅读 2304
- 需求 向App所有用户推送消息,推送接口由Java提供,PHP需要实现的是取到所有用户(目前是几万)并推送。
- 思路 使用Laravel队列异步处理,每次取100个用户进行推送,直至完成。
- 实现 创建队列,处理逻辑...
- 调试
- 启动队列(
php artisan queue:work
),查看日志 - 第10页之后没有日志输出,控制台队列进程被强杀了
- 分析
- 内存不足,参考https://learnku.com/laravel/t/24369 使用memory_get_usage获取内存使用,20M以下,Laravel队列默认分配128M,排除此原因
- 队列超时,参考https://stackoverflow.com/questions/25877752/laravel-queue-process-timeout-error
需要注意:queue:work被kill如上图没有错误信息,使用queue:listen会有
正确的姿势:
php artisan queue:work --timeout=0
0人点赞>
请登录后发表评论
相关推荐
文章归档
最新文章
最受欢迎
10-30 12:05
23-09-27 17:00
23-09-03 10:57
23-09-02 17:11
3 评论
3 评论
2 评论
十七度的邮件通知有类似的需求,我用Redis做的队列,写个死循环每次pop一条,感觉还行,还没遇见什么问题。