背后的故事:
用 ruby 1.8.6 编写的旧脚本,可打开到 ftp 的连接并下载配置文件。对于具有 windows ftp 服务器的特定客户端,脚本只是挂起。日志在打开到 ftp 的连接后停止写入。这是一个旧脚本,它是用红宝石编写的,我不是这方面的专家。
我尝试了什么:
所以我尝试了这种超时实现来检查 ftp 连接是否与这段代码挂起
Timeout::timeout(5) {
ftp = Net::FTP.new(host,pass,host)
}
问题是这行不通。我的猜测是解释器在打开连接时停止,并且超时不会终止连接,因为解释器被卡住了。
这可能是问题所在吗?
你能告诉我是否有替代解决方案或者我做错了什么?
有关它的更多信息:
这个问题在一个月内偶尔会发生一次。最多喜欢两次。客户端向我们发送了 ftp 服务器日志,但那方面似乎没有任何问题。只是FTP根本无缘无故挂在那里......