Ruby on rails Sidekiq卡在空闲模式(Heroku)

Ruby on rails Sidekiq卡在空闲模式(Heroku),ruby-on-rails,heroku,redis,sidekiq,Ruby On Rails,Heroku,Redis,Sidekiq,我的Rails服务器在Heroku上运行时出现问题。就在最近,我的Sidekiq作业停止了处理,Sidekiq似乎陷入了某种“空闲”状态: 我整个上午都在网上跑来跑去,但我似乎找不到任何好的资源来调试这个。如果有人能给我指出正确的方向,我会非常感激 相关版本控制: Ruby '2.5.8' Rails '5.2.4.4' Sidekiq '6.1.2' Redis '4.2.0' 相关配置变量: REDIS_PROVIDER=REDISTOGO_URL REDISTOGO_UR

我的Rails服务器在Heroku上运行时出现问题。就在最近,我的Sidekiq作业停止了处理,Sidekiq似乎陷入了某种“空闲”状态:

我整个上午都在网上跑来跑去,但我似乎找不到任何好的资源来调试这个。如果有人能给我指出正确的方向,我会非常感激

相关版本控制:

Ruby    '2.5.8'
Rails   '5.2.4.4'
Sidekiq '6.1.2'
Redis   '4.2.0'
相关配置变量:

REDIS_PROVIDER=REDISTOGO_URL
REDISTOGO_URL=redis://redistogo:[secret]@crestfish.redistogo.com:11137/
REDIS_URL=redis://redistogo:[secret]@crestfish.redistogo.com:11137/
西德基

:concurrency: 5
staging:
  :concurrency: 10
production:
  :concurrency: 10
:queues:
  - [default, 1]
初始化者/sidekiq.rb

Sidekiq.configure_client do |config|
  config.redis = { url: ENV["REDIS_URL"] }
end
初始化器/redis.rb

REDIS = Redis.new(uri: URI.parse(ENV["REDIS_URL"] || "redis://localhost:6379/"))

任何帮助都将不胜感激。谢谢大家!

好吧,我知道了。问题是在Heroku中运行的Redis版本(通过RedisToGo)使用的是Redis 3.2,而不是我的文件中的4.2.0

我最终通过检查Heroku日志发现了这一点,当然,我应该早点这么做。当我重新启动dynos时,我得到了一个类似的错误


对我来说,解决方案是将我的Sidekiq降级到5.2.9版,因为这样做比在生产中更改Redis提供商更方便(RedisToGo还不支持Redis 4)。

好的,我解决了这个问题。问题是在Heroku中运行的Redis版本(通过RedisToGo)使用的是Redis 3.2,而不是我的文件中的4.2.0

我最终通过检查Heroku日志发现了这一点,当然,我应该早点这么做。当我重新启动dynos时,我得到了一个类似的错误


我的解决方案是将我的Sidekiq降级到5.2.9版,因为这样做比在生产中更改Redis提供商更为方便(RedisToGo还不支持Redis 4)。

快速更新。我找到了到底是什么让UI处于空闲状态。它来自以下代码:workers.size==0?“空闲”:“活动”。现在开始调查。快速更新。我找到了到底是什么让UI处于空闲状态。它来自以下代码:workers.size==0?“空闲”:“活动”。现在调查一下。