You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel问题:队列任务(Queue Job)未被执行

排查任务未执行问题的实用步骤

1. 确认队列Worker进程状态

  • 用进程命令(比如ps aux | grep queue)检查Worker进程是否在运行,有没有意外退出的情况。
  • 若用Supervisor、Systemd管理进程,直接查看服务状态,确认是否处于active,有没有重启记录。

2. 核对队列连接配置

  • 确保任务分发端和Worker使用完全相同的数据库/队列服务配置,比如不要出现任务写到数据库A,Worker却连接数据库B的情况。
  • 检查数据库连接字符串、账号权限,确认Worker有Jobs表的SELECT和UPDATE权限。

3. 检查任务状态与队列归属

  • 查看Jobs表中任务的status字段,确认是Worker监听的状态(比如pending),避免任务被标记为reserved或其他异常状态导致被跳过。
  • 如果用了多队列,核对任务的queue字段值,和Worker启动时指定的监听队列名称是否一致。

4. 查看Worker自身日志

  • 很多队列Worker自带运行日志,即使任务代码没打日志,Worker启动、拾取任务的过程也会有记录。找到Worker日志文件,检查是否有连接失败、权限报错等信息。
  • 临时把Worker日志级别调到debug,重启后观察详细输出,看是否有任务拾取的相关日志。

5. 手动测试任务拾取

  • 在Jobs表手动插入一条极简任务,然后用队列命令行工具触发一次单次任务拾取(比如部分框架支持queue:work --once),看Worker是否能读取并执行该任务。
  • 若手动拾取也失败,优先排查数据库连接或Worker的基础配置问题。

6. 排查系统资源限制

  • 检查服务器CPU、内存、磁盘空间是否充足,资源耗尽会导致Worker无法正常运行。
  • 查看系统ulimit设置,确认文件描述符、进程数等限制没有影响Worker的数据库连接或任务处理。

内容的提问来源于stack exchange,提问作者Fhuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 18:18:12