2

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

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

調べてみましたが、クエリのタイムアウト値を設定する方法がわかりません。ドライバーにいくつかの値を明示的に設定し、接続のDSN構成でTimeoutとConnectionTimeoutおよびConnectTimeoutの両方を指定してみました。運がない。

あなたのヒントやアドバイスは大歓迎です。

ありがとう!セス

4

1 に答える 1

0

クエリ全体を Ruby の組み込みのタイムアウト ライブラリでラップするのはどうですか?

require 'timeout'

begin
  Timeout::timeout(5) {
    @db.query(...)
  }
rescue Timeout::Error
  puts "Too slow, forget about it."
end
于 2009-07-13T22:18:51.290 に答える