Laravel队列批量任务在Horizon中卡住仅完成33%无法删除怎么解决
Laravel Horizon 批量任务进度卡住问题解决方案
问题根因
该现象是Laravel Horizon v5.7.0 ~ v5.7.2版本的已知批次统计bug:进度计算逻辑存在计数错误,会将任务重试、失败的记录重复计入总任务基数,导致即使所有任务实际执行完毕,批次进度永远无法达到100%,会卡在接近33%的位置,和该问题的典型表现完全匹配。
卡住的任务状态参考:
修复方案
1. 避免后续再出现同类问题
将Horizon版本升级至v5.7.3及以上即可,官方已在该版本修复了批次进度计数的逻辑错误,升级后新提交的批量任务进度展示会恢复正常。
2. 清除当前卡住的批次记录
有两种可选操作:
- 全局清理无效记录:执行Artisan命令
php artisan horizon:purge,可直接清理Horizon中所有已结束、异常卡住的任务与批次记录,操作前确认不需要保留历史任务日志即可。 - 定向删除指定批次:查询数据库
job_batches表,找到name为Jobs Test的对应批次行,直接删除该行数据,Horizon会自动同步移除面板上的卡住记录。
内容的提问来源于stack exchange,提问作者AM_NB
相关产品推荐
相关产品推荐

