Нужно скачать много картинок, как правильно сделать

10 октября, 11:55 Работа 3780 5

Предположим, на сайте-доноре нету рейт лимита. Как наиболее быстро их скачать? Если качать поочередно, то допустим 1 картинка в 1 секунду это 11 дней выкачки без перерыва. Если поставить в 10 потоков, то за сутки. Но все равно то как-то долго (картинок вообще и 10 млн может быть)
Качать планировал скриптом на Ноде. Отсюда и вопрос еще один, как распараллелить в 10 потоков? Ну т.е. тупо циклом пройтись не получится, он так сразу тыщу запросов видимо сделает за миллисекунды. Т.е. надо как-то оптимизировать это.

5 комментариев
Сортировка:
Добавить комментарий
Senseye
Senseye 2019, 12 октября, 11:29
0

Якщо все ж таки хочеш на Node.js то варіант запустити 10 команд (node run download.js) де кожна буде працювати зі своїм списком картинок

Senseye
Senseye 2019, 12 октября, 11:26
0

Спробуй на Go, там простіше буде зробити обмеження на 10 запитів

Nikolas
Nikolas 2019, 10 октября, 17:58
0
То, что нода однопоточная, не мешает скачивать картинки в несколько потоков, так как это не CPU intensive задача. Основная часть времени уйдет на "ожидание" данных.
Vitaly Marchuk
Vitaly Marchuk 2019, 10 октября, 14:56
0
download_images_from_csv.sh
Maks
Maks 2019, 10 октября, 13:45
0
Node.js - не многопоточный, а асинхронный язык. А так - циклами и качаете. Приложение можно запустить будет хоть в 100 инстансах, если напишите соответвующий "лаунчер". PM2, вроде, умеет запускать несколько экземпляров одного приложения. Дальше - всё ограничено скоростью интернета и вашего диска.

IT Новости

Смотреть все