Splitを導入したRailsでRedisが落ちていてもエラーにしない

A/B test

実践している最中、Redisが落ちていたためにRailsがエラーになってしまった。本番で発生すると一大事なので、回避策を探したところ見つかった。

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

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

Split.configure do |config|
  config.db_failover = true # handle redis errors gracefully
end

以下の設定にすると、Redisが落ちているとログを出力することができる。

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

関連情報