Sidekiq使用本地redis处理但不使用远程处理

Mat*_*lič 6 ruby-on-rails whenever redis sidekiq

我有使用后台作业的一个回报率的应用程序,每当sidekiq宝石.

在开发环境中,当我使用本地redis实例(在localhost上)启动sidekiq时,该作业将继续执行而不会出现问题.但是,当我切换到一个远程redis实例(Heroku附加组件)并重新启动sidekiq时,它说它开始处理,但没有任何反应,工人没有做任何工作.

这是我的config/schedule.rb(适用于每当宝石)

every 2.minutes do
  rake "crawler:crawl"
end
Run Code Online (Sandbox Code Playgroud)

这是我的初始化器/ redis.rb:

Sidekiq.configure_server do |config|
  config.redis = { :url => 'redis://user:pass@spinyfin.redistogo.com:9098/' }
end

Sidekiq.configure_client do |config|
  config.redis = { :url => 'redis://user:pass@spinyfin.redistogo.com:9098/' }
end
Run Code Online (Sandbox Code Playgroud)

如果我在redis.rb中注释掉内容并运行本地redis实例,则会正常处理作业.但是,当我使用这个远程redis实例时,会显示,然后没有任何处理:

2013-11-29T15:09:26Z 95156 TID-ov6y7e14o INFO: Booting Sidekiq 2.13.0 using redis://redistogo:user@spinyfin.redistogo.com:9098/ with options {}
2013-11-29T15:09:26Z 95156 INFO: Running in ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin11.4.2]
2013-11-29T15:09:26Z 95156 INFO: See LICENSE and the LGPL-3.0 for licensing details.
2013-11-29T15:09:26Z 95156 INFO: Starting processing, hit Ctrl-C to stop
Run Code Online (Sandbox Code Playgroud)

And*_*yev 1

也许您连接到了错误的 Redis 数据库或根本没有连接。在我的应用程序中,我使用不带尾部斜杠的 redis url。在你的情况下:

这是针对数据库“0”的

redis://user:pass@spinyfin.redistogo.com:9098
Run Code Online (Sandbox Code Playgroud)

这对于数据库“1”

redis://user:pass@spinyfin.redistogo.com:9098/1
Run Code Online (Sandbox Code Playgroud)