Laravel 8 队列运行问题
最近新项目使用laravel 8 时,使用队列处理一些日常异步任务后,测试发现了,一批任务运行后有部分任务运行失败,通过horizon 查看失败的任务,可以看到部分任务出现异常失败的情况,而且多次执行测试后,始终会出现失败任务。
首先说下我的相关环境,php 7.3、laravel 8、horizon 5.2;队列驱动是redis
发现这个问题后,我做过一些简单的测试;排除了一些业务逻辑的错误。
测试1
通过单张数据表,遍历数组,逐个运行队列,队列只传一个参数ID,队列只打印一行日志;
队列只打印一行日志
通过horizon查询队列运行状况;
多次运行,总共有24条队列,始终会出现两条padding job,最终这两条会超时出现在失败队列中。
这是错误信息
测试2
```
查询一组数据,遍历运行队列,传输整个对象作为参数,这里是我实际遇到问题的情况。
查询horizon,大概运行有几十条数据,有一条数据出现在错误队列中,提示下面的错误信息。
提示 No query results for model ,通过队列ID,在redis中打印出相应数据,再通过unserialize解析出model的数据后,实际上这条数据是存在的,为什么队列运行后提示不存在?
测试3
不查询数据,循环0-99条数据,运行队列
这次结果正常,反复运行也无失败队列或者padding job产生。
推荐文章: