如何为SQL Server设置Ruby ODBC驱动程序的超时?

问题描述:

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

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

我环顾四周,但无法找到如何设置查询超时值。我已经尝试在驱动程序中明确设置一些值,并在连接的DSN配置中指定Timeout和ConnectionTimeout以及Connect Timeout。没有运气。

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

谢谢! Seth

把整个查询包装到Ruby的内置超时库中怎么样?

require 'timeout' 

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