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

Heroku环境下worker.js未处理Bull队列提交的任务故障排查求助

问题排查及修复方案
  • 核心问题:throng 5.x版本API调用错误
    你使用的throng@5.0.0版本的配置参数和旧版不兼容,当前写法throng({ workers, start })无法正确触发执行start函数,导致worker进程从未初始化队列监听逻辑,自然不会处理任务。
    修复方式有两种可选:
    1. 调整throng调用参数适配v5版本:
    // throng v5版本配置中,进程数字段为count,执行函数字段为worker
    throng({ count: workers, worker: start });
    
    1. 降级throng到v4版本,旧版语法兼容你当前的写法:
    npm install throng@4
    
  • 次要问题:express缺少请求体解析中间件
    你当前的app.js中没有配置JSON请求体解析逻辑,若提交任务的POST请求为JSON格式,request.body会是undefined,虽然不会导致任务不消费,但会导致传入队列的参数为空。请在const app = express();后补充一行配置:
app.use(express.json());
  • 无用代码问题:worker.js中日志语句不可达
    你写的console.log("Finished processing")在return语句之后,属于永远不会执行的死代码,需要移动到return之前才会生效。
  • 验证步骤
    1. 修复throng调用问题后重新部署,查看Heroku worker日志确认是否打印Started processing日志,证明初始化逻辑已执行
    2. 若仍有问题,可通过heroku redis:cli进入Redis实例,执行LLEN bull:work:wait查看等待处理的任务堆积数量,确认任务确实成功入队
    3. 检查web和worker进程的环境变量,确认REDIS_URL配置正确,没有Redis连接报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:45:04