У меня есть сценарий (ниже), который выталкивает html-файл на сервер. Он РАБОТАЕТ 95% времени. Однако, около 5% времени, сервер терпит неудачу, и попытка подключения зависает. Он останавливается на 15 минут (900 секунд), а затем терпит неудачу.Обработка ошибок Python для FTP hang/421 timeout
ftp = FTP('[FTP ADDRESS HERE]')
ftp.login('[USERNAME]','[PASSWORD]')
converted_HTML_string = io.BytesIO(HTML_string)
ftp.storbinary('STOR public_html/home.html', converted_HTML_string)
Опять же, это работает в 95% случаев. В 5%, если это не так, если я вручную прерываю его, когда он зависает, и просто повторно запускает запрос еще раз - тогда он работает. Кажется, это вызвано временными сбоями сервера. Я не контролирую качество сервера.
Настоящая проблема в том, что повесить слишком долго. То, что я хочу, чтобы установить ограничение по времени (например, 30 секунд) на то, как долго он зависает, а затем иметь код, который говорит: «Повторно запустите эту команду ftp, пока она не удастся».
Возможно ли это? Есть ли другой способ справиться с этим?
Спасибо!
Спасибо. В случае, если это помогает кому-то еще, я смог уловить ошибку таймаута следующим образом, что позволяет мне повторно подключиться к подключению до тех пор, пока оно не будет работать: –
import socket [paragraph здесь] кроме socket.timeout, e: –
I ' m добавляя ваше объяснение к этому ответу, чтобы придать ему большую видимость. – Prune