2011-09-07 6 views
2

데이터베이스에서 일부 데이터를 추출하려면 mysql (5.1) ruby ​​(1.8.7) 커넥터를 사용하고 있습니다. 일부 쿼리는 원하는 것보다 오래 실행되는 경향이 있으므로 이러한 쿼리에 대한 연결 시간 제한을 설정하고 싶습니다.Mysql Ruby로 연결 시간 제한 설정

require 'rubygems' 
require 'mysql' 

# connect to the database 
db = Mysql.real_connect('server', 'user', 'password', 'schema') 

# configure read timeout 
db.options(Mysql::OPT_READ_TIMEOUT, 10) 

# query and process 
begin 

    db.query("select * from ..").each_hash do |row| 
    # process data if query returned 
    end 

rescue Mysql::Error => err 
    # handle timeout 
end 

그러나이 나를 위해 작동하지 않는 것하십시오 related post에 의해 제안 된 해결책은 다음과 같다. 왜 어떤 생각을하고 어떻게 완성 할 수 있습니까? 감사.

답변

3

실제로 연결하기 전에 옵션을 설정해야 할 수도 있습니다.

db = Mysql.init 
db.options(Mysql::OPT_READ_TIMEOUT, 10) 
db.real_connect('server', 'user', 'password', 'schema')