【发布时间】:2014-10-12 00:38:01
【问题描述】:
我有一个长期项目,将 sidekiq 与 redis 一起使用,并且我相信只有在升级到 sidekiq 3+ 之后才开始出现问题。
问题是,如果不先启动 redis 服务器,我就无法在开发中运行我的 rails (4.1.4) 应用程序。当我尝试在没有先启动 redis 的情况下运行 bundle exec sidekiq 时,我在启动 rails 服务器时遇到了同样的错误。在没有运行 redis 的情况下运行我的 rails 应用程序以前从来不是问题,即使 sidekiq 的设置方式相同。
即使我不打算运行 sidekiq,有人可以建议一种方法来解决必须启动 redis 服务器的问题吗?
这是回溯:
/Users/mark/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/redis-3.1.0/lib/redis/client.rb:309:in
rescue in establish_connection': Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED) (Redis::CannotConnectError) from /Users/mark/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/redis-3.1.0/lib/redis/client.rb:304:inestablish_connection' 来自 /Users/mark/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/redis-3.1.0/lib/redis/client.rb:85:inblock in connect' from /Users/mark/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/redis-3.1.0/lib/redis/client.rb:266:inwith_reconnect' 来自 /Users/mark/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/redis-3.1.0/lib/redis/client.rb:84:inconnect' from /Users/mark/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/redis-3.1.0/lib/redis/client.rb:326:inensure_connected' 来自 /Users/mark/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/redis-3.1.0/lib/redis/client.rb:197:inblock in process' from /Users/mark/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/redis-3.1.0/lib/redis/client.rb:279:inlogging' 来自
【问题讨论】:
-
错误的回溯应该显示错误发生的位置。请使用相关错误和回溯更新您的问题。
-
好的,我添加了回溯。
-
看起来它正在尝试连接到
recurrence块中的 Sidekiqpnm_tournament_updater。那个街区里有什么? -
recurrence backfill: true do daily.hour_of_day(18) end -
我认为这个问题与github.com/tobiassvn/sidetiq/issues/103有关。不幸的是,该修复程序尚未被拉入主仓库。您可以尝试使用带有
gem 'sidetiq', github: 'nkondratyev/sidetiq', branch: 'fix_working_with_prefork_servers'的 Gemfile 中的固定 fork 来查看它是否可以解决问题。
标签: ruby-on-rails redis sidekiq