У меня есть простой объект подключения
require 'net/sftp'
@con = Net::SFTP.start(@@host, @@username, :password => @@password
...
@con.upload!(filepath, destination)
У меня есть это в сценарии, который прослушивает файлы, помещенные в папку. Файлы собраны и загружены на удаленный сервер sfpt. Все работает нормально, но кажется, что после того, как скрипт останется запущенным достаточно долго, он сломается и выдаст эту ошибку:
exception while processing events: Write to the server failed
Я могу только предположить, что это происходит, потому что простое соединение отключается через определенное время.
Есть ли возможность держать соединение открытым на неопределенное время? или это ограничение?
Если это невозможно, могу ли я справиться с ошибкой? Что-то вроде:
begin
@con.upload!(filepath, destination)
rescue Net::SFTPStatusException => e
if e.code == 7 //connection lost code
@con.{reconnect}//Whatever this would look like
end
else
raise
end
end
Не уверен, правильный ли код ошибки - 7 или как я могу повторно подключить объект подключения.