为什么消息一入队就在Pending Jobs中??
为什么消息一入队就在Pending Jobs中??
环境:windows或者linux+redis
现在是测试阶段,数据只有几条,开发环境win,生产环境linux,还没有大规模使用,也就是10条左右的队列数,也没有复杂的计算,怎么老是超时或者等待中
在Linux上又遇到这个问题了!
你的意思是在队列中不执行是吗?
手头上有没有非 Windows 的环境,有的话试过没问题就别管了。Docker 、虚拟机、或 VPS。
Windows 下有一些坑,陷进去就完全是浪费时间,如果是 Linux 解决了以后还能学点服务器知识。尤其是这种非主流操作。
讨论的是问题本身,是可以先解决你的问题先。
可能你公司就是需要 Windows,身不由己。但是站长给的题外话是对的,Windows 学的一些类似于 IE 6 的 Hack 什么的,最后都是浪费时间,毕竟市场份额都是 Linux。
Windows 确实很多问题,长久之计,可以的话还是提前搞个计划上 Linux 环境。
队列的任务内容是什么?
stack trace里,卡住的是哪一行代码?
调试一下是不是代码卡主了
你这个应该是尝试太多次了,而且总时间超过了。建议加大对列通道或者加允许执行的时间
为什么消息一入队就在 Pending Jobs 中?? 因為這個是正在等待執行的任務 然後那個delayed 這個是由於執行失敗了 在failed jobs裡面能看到 因為這個也算是未執行完的 你在failed jobs中把這個執行成功了 這邊可能就沒有了
我也发现了,今天抽时间定位了下问题,应该是下面这个原因引起的
Pending Jobs这个页有个定时任务,每3秒一个请求去获取最新的pending jobs数据 github.com/laravel/horizon/blob/5....
但是当队列执行完时,定时任务去获取数据并更新页面时js报错了,导致页面上的数据没更新,除非你手动刷新下页面。
也可以改下
vendor/laravel/horizon/resources/js/screens/recentJobs/index.vue
文件第71行 loadJobs 方法的判断条件,重新编译后,执行php artisan horizon:publish
重新发布下静态文件 github.com/laravel/horizon/blob/5....不太懂前端,根据报错改的,被我改成如下这样了
正常了