Ответ 1
Похоже, вы хотите использовать один из вариантов HTTP Range, которые доступны.
изменить Обновлена ссылка, чтобы указать на w3.org сохраненный RFC
Для загрузки файлов я создаю объект urlopib (класс urllib2) и читаю его в кусках.
Я хотел бы подключиться к серверу несколько раз и загрузить файл в шесть разных сеансов. При этом скорость загрузки должна быть быстрее. У многих менеджеров загрузки есть эта функция.
Я подумал о том, чтобы указать часть файла, который я хотел бы загрузить в каждом сеансе, и как-то обрабатывать все сеансы в одно и то же время. Я не уверен, как я могу это достичь.
Похоже, вы хотите использовать один из вариантов HTTP Range, которые доступны.
изменить Обновлена ссылка, чтобы указать на w3.org сохраненный RFC
Что касается запуска параллельных запросов, вы можете использовать urllib3 или requests.
Мне понадобилось время, чтобы составить список похожих вопросов:
Поиск [python] +download +concurrent
дает следующие интересные:
Поиск [python] +http +concurrent
дает следующие значения:
Ищите [python] +urllib2 +slow
:
Поиск [python] +download +many
:
Как мы уже говорили, я сделал такой, используя PycURL.
Единственное, что мне нужно было сделать, это pycurl_instance.setopt(pycurl_instance.NOSIGNAL, 1)
, чтобы предотвратить сбои.
Я использовал APScheduler для запуска запросов в отдельных потоках. Благодаря вашим советам об изменении ожидания занятости while True: pass
до while True: time.sleep(3)
в основном потоке код ведет себя довольно хорошо, и использование модуля Runner из приложения пакета python-daemon почти готово к использованию в качестве типичного демона UN * X.