如何延长activerecord和tinytds超时?

ohh*_*hho 4 sql-server activerecord ruby-on-rails tiny-tds

症状是:

TinyTds::错误:Adaptive Server 连接超时:EXEC some_stored_procedure

这是execute_procedure一个在慢速 MSSQL Server 上通过 ActiveRecord 运行的慢速存储过程tinytds。如果我EXEC在 SQL 查询分析器中执行存储过程,则需要 29 到 30 才能完成。

所以我补充道:

timeout = 60
Run Code Online (Sandbox Code Playgroud)

/etc/freetds.conf和:

read_timeout: 60
write_timeout: 60
Run Code Online (Sandbox Code Playgroud)

database.yml

同样的错误仍然出现。还有其他我错过的配置吗?

ps 我确实测量了按回车键后计时器何时出现超时错误,大约为 30 秒。我有一种感觉 30 秒可能不是freetdsor的默认超时activerecord ,并且想知道为什么错误显示的时间有点接近 sql 完成的时间...

Mes*_*NEŞ 5

已经过去很长时间了,但有人可能需要这个。我通过传递依赖于git doctimeout:创建tiny_tds客户端的选项解决了这个问题,请参阅以下内容:

client = TinyTds::Client.new username: 'sa', password: 'secret', host: 'mydb.host.net', timeout: 30
Run Code Online (Sandbox Code Playgroud)