Redis with rails. You need to reconnect to Redis after forking error.の解決方法
2年間運用しているRailsアプリケーションにRspec高速化のためにspring-commands-rspec
gemを追加したところ発生。
- エラーメッセージ
Redis::InheritedError:
Tried to use a connection from a child process without reconnecting. You need to reconnect to Redis after forking or set :inherit_socket to true.
エラーメッセージを見ると、Springがフォークしてできたプロセスが、Redisとのコネクションが取れていないということらしい。Springのドキュメントを見てみると、フォークした後タイミングのコールバックが用意されていたので利用。
config/spring.rb
Spring.after_fork do
begin
Redis.current = Redis.new(hogehoge)
Redis.current.ping # 接続チェック
rescue => err
Rails.logger.info(err)
end
end
上記エラーが発生した環境はそれぞれだと思いますが、参考になれば幸いです。
Author And Source
この問題について(Redis with rails. You need to reconnect to Redis after forking error.の解決方法), 我々は、より多くの情報をここで見つけました https://qiita.com/murata0705/items/59e592d2c52baba21942著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .