on-rails-sidekiq处于空闲模式(heroku)

izj3ouym  于 2021-06-08  发布在  Redis
关注(0)|答案(1)|浏览(434)

我的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/"))

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

w8rqjzmb

w8rqjzmb1#

好吧,我知道了。问题是在heroku中运行的redis版本(通过redistogo)使用的是redis3.2,而不是我文件中的4.2.0。
我最终通过检查heroku日志发现了这一点,当然,我应该早点这么做。当我重新启动dynos时,出现了这样的错误。
我的解决方案是将我的sidekiq降级到5.2.9版本,因为这样做比在生产中更改redis提供者更方便(redistogo还不支持redis 4)。

相关问题