Как установить время ожидания для драйвера Ruby ODBC для SQL Server? - PullRequest
2 голосов
/ 09 июля 2009

Я хотел бы знать, как явно установить время ожидания для драйвера ODBC Ruby DBI при подключении к SQL Server. Я хотел бы, чтобы длительные запросы просто блокировали время ожидания и отменяли себя, сохраняя дополнительные ресурсы сервера и процессы Rails.

Это происходило, когда мы использовали драйвер Ruby на основе ADO, но теперь, когда мы перешли на DBD :: ODBC, у нас больше нет тайм-аутов.

Я посмотрел вокруг, но не могу узнать, как установить значение тайм-аута запроса. Я попытался явно установить некоторые значения в драйвере, а также указать Timeout и ConnectionTimeout и Connect Timeout в конфигурации DSN для соединения. Не повезло.

Ваши советы и рекомендации очень ценятся.

Спасибо! Сет

1 Ответ

0 голосов
/ 14 июля 2009

Как насчет упаковки всего запроса во встроенной библиотеке времени ожидания Ruby?

require 'timeout'

begin
  Timeout::timeout(5) {
    @db.query(...)
  }
rescue Timeout::Error
  puts "Too slow, forget about it."
end
...