Разделы · Код и программные интерфейсы
Пишу свой сборщик, и на этом месте встал.
По порядку.
На тысяче запросов всё ровно, на ста тысячах начинается расхождение. Состояние прогона храню в файле, чтобы продолжать после обрыва. Повторы стоят три раза с паузой, которая растёт вдвое.
Хочется услышать цифры от практиков.
Согласен с предыдущим ответом, но с одной оговоркой.
Повторы делайте с растущей паузой: первая через две секунды, вторая через четыре, третья через восемь. Три попытки достаточно, дальше проблема не в связи.
Логируйте код ответа, время и адрес. Три поля, и почти любой разбор потом занимает минуты.
async with aiohttp.ClientSession() as s:
for i in range(3):
try:
r = await s.get(url, proxy=adres, timeout=30)
break
except Exception:
await asyncio.sleep(2 ** i)Работает, пока объём небольшой. Дальше правила другие.
Сессия должна создаваться один раз и жить весь прогон. Новая сессия на каждый запрос съедает время на установку соединения и путает настройки.
Уточните пару моментов, иначе гадаем.
Уточните пару моментов, иначе гадаем.
Полгода назад ловил то же самое.
Повторы делайте с растущей паузой: первая через две секунды, вторая через четыре, третья через восемь. Три попытки достаточно, дальше проблема не в связи.
Тема нужная, подписался.
Начните с малого объёма и растите постепенно.
Почти так, но одна деталь меняет вывод.
Повторы делайте с растущей паузой: первая через две секунды, вторая через четыре, третья через восемь. Три попытки достаточно, дальше проблема не в связи.
Хороший разбор, добавлю в закладки.
Начинал с того же, потом переделал.
Адрес выбирайте по кругу с пропуском тех, что в отказе. Случайный выбор даёт перекос, кому-то достанется втрое больше запросов.
Отпишитесь, чем закончится, тема полезная.
Расскажу, чем закончилось у меня.
Повторы делайте с растущей паузой: первая через две секунды, вторая через четыре, третья через восемь. Три попытки достаточно, дальше проблема не в связи.
Логируйте код ответа, время и адрес. Три поля, и почти любой разбор потом занимает минуты.