Sidekiq 陷入空闲模式(Heroku)
Sidekiq Stuck in Idle Mode (Heroku)
我的 Rails 服务器在 Heroku 上生产 运行 时遇到问题。就在最近,我的 Sidekiq 作业停止处理,Sidekiq 似乎陷入某种 'idle' 状态:
我整个上午都在网上 运行,但我似乎找不到任何好的资源来调试它。如果有人能指出我正确的方向,我将不胜感激。
相关版本:
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/
Sidekiq.yml
:concurrency: 5
staging:
:concurrency: 10
production:
:concurrency: 10
:queues:
- [default, 1]
initializers/sidekiq.rb
Sidekiq.configure_client do |config|
config.redis = { url: ENV["REDIS_URL"] }
end
initializers/redis.rb
REDIS = Redis.new(uri: URI.parse(ENV["REDIS_URL"] || "redis://localhost:6379/"))
如有任何帮助,我们将不胜感激。谢谢!
好的,我明白了。问题是 Heroku 中的 Redis 版本 运行(通过 RedisToGo)使用的是 Redis 3.2,而不是我的 Gemfile 中的 4.2.0。
我最终通过检查 Heroku 日志发现了这一点,当然,我应该早点这样做。当我重新启动我的测功机时,我收到了类似 .
的错误
我的解决方案是将我的 Sidekiq 降级到版本 5.2.9,因为这样做比在生产中更改 Redis 提供程序更方便(RedisToGo 尚不支持 Redis 4)。
我的 Rails 服务器在 Heroku 上生产 运行 时遇到问题。就在最近,我的 Sidekiq 作业停止处理,Sidekiq 似乎陷入某种 'idle' 状态:
我整个上午都在网上 运行,但我似乎找不到任何好的资源来调试它。如果有人能指出我正确的方向,我将不胜感激。
相关版本:
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/
Sidekiq.yml
:concurrency: 5
staging:
:concurrency: 10
production:
:concurrency: 10
:queues:
- [default, 1]
initializers/sidekiq.rb
Sidekiq.configure_client do |config|
config.redis = { url: ENV["REDIS_URL"] }
end
initializers/redis.rb
REDIS = Redis.new(uri: URI.parse(ENV["REDIS_URL"] || "redis://localhost:6379/"))
如有任何帮助,我们将不胜感激。谢谢!
好的,我明白了。问题是 Heroku 中的 Redis 版本 运行(通过 RedisToGo)使用的是 Redis 3.2,而不是我的 Gemfile 中的 4.2.0。
我最终通过检查 Heroku 日志发现了这一点,当然,我应该早点这样做。当我重新启动我的测功机时,我收到了类似
我的解决方案是将我的 Sidekiq 降级到版本 5.2.9,因为这样做比在生产中更改 Redis 提供程序更方便(RedisToGo 尚不支持 Redis 4)。