このブログをご覧のみなさん、こんにちは。

Split を採用して仮稼働している最中、Redis が落ちていたために Rails がエラーになってしまいました。 本番で発生すると一大事なので、回避策を探したところ見つかったので、備忘録として残しておきます。

Split で Redis が落ちていてもエラーにしない

以下の設定をすると、Redis が落ちていてもエラーになりません。選択肢は ab_test の第二引数(=一番最初の選択肢)になります。

# config/initializers/split.rb
Split.configure do |config|
  config.db_failover = true # handle redis errors gracefully
end

以下の設定にすると、Redis が落ちているとログが出力されます。

# config/initializers/split.rb
Split.configure do |config|
  config.db_failover = true # handle redis errors gracefully
  config.db_failover_on_db_error = proc{|error| Rails.logger.error(error.message) }
end

関連情報