Форум сайта python.su
При использовании ftplib бывает передача файла замирает, она может и идёт, но со скоростью в пару байт.
Ошибок никаких нет, можно прождать 30 мин и фаил в 50кб так и будет передаваться.
Как отлавливать такие ситуации и делать реконнект ?
Офлайн
Установите callback в retrbinary и смотрите, считайте, с какой скоростью идет файл.
Офлайн
Спасибо, похоже придётся проверять в отдельном потоке периодичность вызова callback, т.к передача вообще замирает скорей всего.
Офлайн
ну можно еще размер буфера поменьше сделать в том же конструкторе метода
Офлайн
В бинарном режиме намного стабильней передаётся.
Надеюсь проблем с текстовыми файлами в этом режиме не возникнет.
Отредактировано (Янв. 12, 2011 16:56:49)
Офлайн
jartasaединственная проблема, которая может возникнуть, это если вы скрипты на никсовый сервер заливаете, тогда автоматически виндовые переносы строк (\r\n) не преобразуются в никсовые (\n). Но это не страшно, если вы заранее об этом позаботитесь. А так, проблем больше быть не должно.
Надеюсь проблем с текстовыми файлами в этом режиме не возникнет.
Офлайн
Эх, всрёравно периодически зависает передача и не понятно почему, но при бинарном режиме реже.
При блоке в 1024 байт в течении 5 минут ни одного вызова callback.
Может есть другие библиотеки или обёртки надо этой ?
Столько уже намучился с этим ftp, а протокол передачи уже не поменять.
Офлайн
может тогда просто ждать какоенибудь время и если колбек небыл вызван предпринимать какиенить действия
Офлайн
jartasaесть хорошая обертка ftputil, посмотрите, может быть там что то сделано в этом направлении.
Может есть другие библиотеки или обёртки надо этой ?
Столько уже намучился с этим ftp, а протокол передачи уже не поменять.
Офлайн
Оказывается такая проблема и с сокетами происходит, по таймауту почему-то не отваливаются. Таймаут ведь есть по стандарту в сокетах ?
Отредактировано (Янв. 13, 2011 21:34:55)
Офлайн