2

我想知道在连接到 SQL Server 时如何为 Ruby DBI ODBC 驱动程序显式设置超时。我希望长时间运行的查询能够简单地超时并自行取消,从而节省更多的服务器资源和 Rails 进程。

这发生在我们使用基于 ADO 的 Ruby 驱动程序时,但现在我们已经切换到 DBD::ODBC,我们不再遇到超时。

我环顾四周,但找不到如何设置查询超时值。我尝试在驱动程序中显式设置一些值,并在连接的 DSN 配置中同时指定 Timeout 和 ConnectionTimeout 和 Connect Timeout。没运气。

非常感谢您的提示和建议。

谢谢!赛斯

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 回答