aliens
Окт. 22, 2007 18:30:28
Здравствуйте. Вот начал делать сканер фтп. Т.е. получение всех файлов и папок. котоыре есть на фтп.
Делаю через ftplib.dir() потом обрабатываю полученое.. Хочу сделать несколько потоков, как реализовать7 на ум приходит только 1, сканировать корень, и на каждую папку натравливать свой тред. Можно ли как нибудь еще?
И еще, насколько эффективен ftplib.dir, и может есть что либо побыстрее?
Maximbo
Окт. 22, 2007 19:01:54
<offtopic>
Рекурсивный сканер ftp, да ещё и в несколько потоков… Вам сервера чужие не жалко? У нас в сети от такого мародёрства многие частные ресурсы позакрывались.
</offtopic>
aliens
Окт. 23, 2007 00:22:03
Maximbo
нет, не жалко)
проверил на сетевом, 3 ТБ, все нормально.. при этом еще люди чета качали. Так что не понимаю что в этом такого?
Андрей Светлов
Окт. 23, 2007 01:39:41
Классическая задача для thread pool - по одному заданию на директорию
aliens
Окт. 23, 2007 16:30:08
Андрей Светлов
ну так и думал делать… делать это средствами Thread'ов ?
aliens
Окт. 23, 2007 16:32:42
да, и еще вопрос. при 1 соединении,можно в несколько потоков делать dir в разных директориях?
Андрей Светлов
Окт. 23, 2007 16:35:06
Вот, например, не самый плохой вариант реализации.
Или нужен полный пример со сканированием ftp? :)
Андрей Светлов
Окт. 23, 2007 16:42:25
либо одно соединение на поток, либо одно глобальное, но обвешанное блокировкой.
ftplib.ftp.dir() на самом деле шлет несколько команд на сервер, нельзя нескольким потокам дать им перемешаться