【问题标题】:How to set FTP session idleness timeout in Ruby?如何在 Ruby 中设置 FTP 会话空闲超时?
【发布时间】:2012-01-11 02:44:57
【问题描述】:

我有一个 Ruby 线程,它首先连接到 FTP 服务器,然后上传数千个文件。由于一些连接问题,Ruby 线程经常挂起。所以我想为ftp空闲设置一个超时时间。

Ruby Net::FTP Timeout Threads 的帖子建议使用 Timeout 模块:

begin
  Timeout.timeout(10) do
    // connect to FTP and upload
  end
rescue Timeout::Error
    ...
end

这种方法不能解决我的问题,因为超时是针对整个计算块的,而不是从 FTP 会话的空闲/不活动开始的超时。

那我该怎么办?

【问题讨论】:

    标签: ruby ftp timeout


    【解决方案1】:

    试试这样的

    transferred = 0
    buffersize = 1024
    filesize = File.size(file)
    ftp.putbinaryfile(file, "/private/transfer/#{File.basename(file)}", buffersize) { |data|
      raise "no data sent" if data.size == 0 or data.size < buffersize
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-28
      • 2022-09-23
      • 2012-02-17
      • 2013-06-18
      • 2022-08-17
      • 1970-01-01
      • 2017-07-29
      • 1970-01-01
      相关资源
      最近更新 更多