Rails 4 で Live メソッドを使用するアプリケーションを作成しました。しかし、それを使用すると、DB への最大接続数に達するまで、更新ごとにもう 1 つの接続を取得し続け、ハングして永久にロードされます。
ユーザーがサイトを更新したとき、またはサイトを離れることを決定したときに、接続がダウンしていることを確認するにはどうすればよいですか?
これは私のセットアップです:
def events
response.headers["Content-Type"] = "text/event-stream"
redis = Redis.new
redis.psubscribe("participants.*") do |on|
on.pmessage do |pattern, event, data|
response.stream.write("event: #{event}\n")
response.stream.write("data: #{data}\n\n")
end
end
rescue IOError
logger.info "Stream closed"
ensure
redis.quit
response.stream.close
end
Nginx と Rainbows を使用しています。Ubuntu 10.04 で。Ruby 2.0.0-p195 Postgresql Rails 4