Задать вопрос

Как написать скрипт асинхронного скачивания tornado httpclient?

как написать скрипт скачивающий контент в 10тысяч+ асинхронных запросов одновременно ?

инструмент
www.tornadoweb.org/en/branch2.2/httpclient.html

на вход подается файл с 200+млн хостов
  • Вопрос задан
  • 381 просмотр
Подписаться 6 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@sakuradaj
Можно попробовать использовать https://twistedmatrix.com/trac/
Там более богатый набор для асинхронной работы.
Плюс пишите масштабируемое приложение что бы можно было запускать на нескольких инстансах, а задачи на скачивание передавать им через Celery например.
Ответ написан
Комментировать
@lega
Ответ написан
Комментировать
@m0ody
backend dev (python, django, postgresql, celery)
Раз у Вас 200+ млн хостов, то обязательно соберите cURL с асинхронным резолвером хостов (c-ares). Иначе ни какой асинхронности не будет.
Вот как это сделать в Debian:
apt-get install -y build-essential python-dev python-pip

wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
tar zxvf c-ares-1.10.0.tar.gz
cd c-ares-1.10.0
./configure
make
make install

wget http://curl.haxx.se/download/curl-7.40.0.tar.gz
tar zxvf curl-7.40.0.tar.gz 
cd curl-7.40.0
./configure --enable-ares --with-ssl --with-zlib --enable-ipv6 --with-libidn
make
make install

pip install pycurl --upgrade

rm -rf /usr/lib/libcurl*
ln -s /usr/local/lib/libcurl.so.4 /usr/lib/libcurl.so.4
ln -s /usr/local/lib/libcurl.so.4 /usr/lib/libcurl.so
ldconfig

python -c "import pycurl;print pycurl.version" 
# Должна появиться строчка с версией содержащей c-ares
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы