Установка времени ожидания соединения с Mysql Ruby

Я работаю с соединителем mysql (5.1) ruby ​​(1.8.7) для извлечения некоторых данных из базы данных. Некоторые запросы, как правило, выполняются дольше, чем хотелось бы, поэтому я хотел бы установить для них тайм-аут соединения. Решение, предложенное в сообщении, связанном с этим, последующий:

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

Однако, похоже, это не работает для меня. Любые идеи, почему и как выполнить то, что мне нужно? Спасибо.


person sa125    schedule 07.09.2011    source источник


Ответы (1)


Возможно, вам придется установить параметры перед фактическим подключением.

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