私はRackを使用した非常にシンプルなWebサービスを持っており、有効な接続ごとにMySQLに連絡するRailsはありません。接続を(たとえばコンストラクターで)永続化したいので、すべての要求でそれを再利用します。このようなことを言いましょう:
class Service
def initialize(dbhost, dbport, dbname, dbuser, dbpass)
@client = Mysql2::Client.new(
:host => dbhost,
:port => dbport,
:database => dbname,
:username => dbuser,
:password => dbpass)
end
def call(env)
# some logic that will call:
results = _query(sql)
end
def _query(sql)
results = @client.query(sql)
end
end
Rack::Handler::Mongrel.run Service.new(DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASS), :Port => 8123
上記のコードを使用すると、サービスはMySQL接続を取得し、すべてのリクエストでクエリを実行します。_query
しかし、接続が切断された場合にメソッドが再接続することを確認するにはどうすればよいですか?