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

Rails 6.1部署Heroku后任务走Async而非Sidekiq问题求助

排查思路
  • 首先核对config/environments/production.rb中的配置语法:正确配置应为config.active_job.queue_adapter = :sidekiq,注意active_job与queue_adapter之间是英文点号,而非下划线,语法错误会导致配置不生效。
  • 确认Heroku运行环境:执行heroku config:get RAILS_ENV确认返回值为production,若环境变量被修改为其他值,production.rb的配置不会加载。
  • 检查初始化文件拼写:你提供的redis.rb路径写为intializers/redis.rb,正确目录名应为initializers,拼写错误会导致初始化文件完全不加载,核对sidekiq.rb和redis.rb的路径、文件名是否完全正确。
  • 排查配置覆盖情况:检查是否存在其他初始化文件、具体任务类中单独指定了self.queue_adapter = :async,局部配置优先级高于全局配置,会覆盖production.rb的设置。
  • 确认Sidekiq gem加载范围:检查Gemfile中sidekiq相关依赖没有被限定在development/test组,生产环境可正常加载Sidekiq。
  • 验证REDIS_URL环境变量:执行heroku config确认REDIS_URL变量存在且值正常,若变量缺失,sidekiq.rb中的条件判断会跳过配置,Sidekiq无法正常初始化会回退到Async适配器。
  • 临时增加调试逻辑:可在生产环境的路由中临时加如下接口,访问后确认当前使用的适配器类型:
    get '/debug_adapter' => proc { [200, {}, [Rails.application.config.active_job.queue_adapter.name.to_s]] }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:24:03