2009-07-08 5 views
2

SQL Serverに接続する際に、Ruby DBI ODBCドライバのタイムアウトを明示的に設定する方法を知りたいと思います。私は長時間実行しているクエリを単にタイムアウトにして自分自身をキャンセルして、さらなるサーバーリソースとRailsプロセスを節約したいと思います。SQL ServerのRuby ODBCドライバのタイムアウトを設定するには?

これは、ADOベースのRubyドライバを使用している間に発生していましたが、DBD :: ODBCに切り替えたのでタイムアウトが発生しなくなりました。

私は見回しましたが、クエリのタイムアウト値の設定方法がわかりません。明示的にドライバのいくつかの値を設定し、接続のDSN構成でTimeoutとConnectionTimeoutとConnect Timeoutの両方を指定しようとしました。運がない。

あなたのヒントとアドバイスは非常に高く評価されています。

ありがとうございます! Seth

答えて

0

Rubyの組み込みタイムアウトライブラリでクエリ全体をラップする方法はありますか?

require 'timeout' 

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