laravel队列数量不对且不会抛出异常而是无限重试?

1. 运行环境

docker容器

1). 当前使用的 Laravel 版本?

7.3

2). 当前使用的 php/php-fpm 版本?

php-fpm 版本:7.3

3). 当前系统

debian

4). 业务环境

debian

5). 相关软件版本

redis6.0.6

2. 问题描述?

在command任务调度中批量添加队列任务用作生成数据,supervisor监听16个work消耗任务,队列任务会请求api,并且设置了20秒超时时间,但是在观测中,数据正常运行时候,数据会添加,队列数量却不会减下去,api卡住时,会进行无限重试或者压根不超时【存疑,无法观察到具体情况】

1.work资源耗尽

本地和线上代码是一致的,guzzlehttp设置了超时时间,并且重试三次后,任务会被追加到failed_jobs表内,但是线上却不会,不清楚它是没有管超时参数还是无限的重试【之所以说无限重试是因为把所有的work都耗住了,其他的队列或者优先队列没有执行】,两边的运行命令是一致的重试三次


2.list长度变化问题

正常消耗时,redis内的list长度变化不规律?如下图所示,work正常工作,数据也正常入库,但是redis里所有的key,长度都没有变化,无论是queuesdefault还是queuesdefaultnotify都是一样的


《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1

没有人遇到过类似的问题么,实在不懂为什么redis的list数量为什么不对,那laravel是如何使用的呢,总不能lpop执行完再rpush进去吧,那新加入的任务岂不是在无意义的等待

1年前 评论

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