Sidekiq大好きになっちゃったんですが、
Redisってほとんどの場合、localhost:6379じゃないですよね、うん。
Sidekiq > Advanced OptionsにはUnicornの場合、configure_clientのブロックをunicorn.rbのafter_forkに書けって書いてあるんで、そっちにしか書いてないとRunnerんとき動かない。
いや、動くんだけど、デフォルトのlocalhost:6379にいくんで。
なので、
initializers/sidekiq.rb
Sidekiq.configure_server do |config|
config.redis = { :url => $redis_host , :namespace => 'resque'}
end
# When in Unicorn, this block needs to go in unicorn's `after_fork` callback:
Sidekiq.configure_client do |config|
config.redis = { :url => $redis_host , :namespace => 'resque'}
end
unicorn.rb
after_fork do |server, worker|
defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
# When in Unicorn, this block needs to go in unicorn's `after_fork` callback:
Sidekiq.configure_client do |config|
config.redis = { :url => redis_host , :namespace => 'resque'}
end
end
両方に書かないとうまくいかなかったよって話。
まあRunnerからenqueueするってシチュエーションの方がイレギュラーな気もしますが。