Max retries exceeded with url telegram что это значит
Когда я пытаюсь range с (0,2) , он работает, но когда я помещаю range в 100 , он показывает эту ошибку:
Что произошло, так это то, что сервер itunes отказывается от вашего соединения (вы отправляете слишком много запросов с одного и того же IP-адреса за короткий промежуток времени)
Максимальное количество попыток превышено с помощью url:/in/app/adobe-reader/ >
Существует проблема с python.requests lib в Github, проверьте здесь
Чтобы преодолеть эту проблему (не столько проблема, как обманчивая трассировка отладки), вы должны поймать связанные с подключением исключения следующим образом:
это означает, что запросы могут пытаться получить доступ к данным несколько раз. Но в документах нет ни единого упоминания об этой возможности. Глядя на исходный код, я не нашел места, где я мог бы изменить значение по умолчанию (предположительно 0).
Так можно ли как-то установить максимальное количество попыток для запросов?
это базовый urllib3 библиотека, которая выполняет повторную попытку. Чтобы задать другое максимальное число повторов, используйте альтернативные транспортные адаптеры:
на max_retries аргумент принимает целое число или Retry() объект; последний дает вам мелкозернистый контроль над тем, какие виды сбоев повторяются (целочисленное значение превращается в Retry() экземпляр, который обрабатывает только сбои соединения; ошибки после подключения по умолчанию не обрабатывается, поскольку это может привести к побочным эффектам).
старый ответ, предшествующий выпуску запросов 1.2.1:
на requests библиотека на самом деле не делает это настраиваемым, и не собирается (см. этот запрос тянуть). В настоящее время (запросы 1.1) количество попыток равно 0. Если вы действительно хотите установить его на более высокое значение, вам придется установить это глобально:
эта константа не документирована; используйте это на свой страх и риск, поскольку будущие выпуски могут изменить то, как это обрабатывается.
по состоянию на документация для повтора: если backoff_factor равен 0.1, то sleep () будет спать в течение [0.1 s, 0.2 s, 0.4 s, . ] между попытками. Он также заставит повторить попытку, если возвращенный код состояния 500, 502, 503 или 504.
различные другие опции для повторной попытки позволяют более детализированный контроль:
NB: raise_on_status является относительно новым и еще не превратился в выпуск urllib3 или запросов. на raise_on_status аргумент ключевого слова, похоже, попал в стандартную библиотеку не более чем в python версии 3.6
по умолчанию повторная попытка срабатывает только для этих условий:
чтобы заставить его вести себя более интуитивно понятным для работы с удаленным API или веб-сервером, я бы использовал приведенный выше фрагмент кода, который заставляет повторять попытки на статусах 500, 502, 503 и 504, все из которых не редкость в интернете и (возможно) восстанавливаются с учетом большого достаточно периода отступления.
During handling of the above exception, another exception occurred:
urllib3==1.24.1
selenium==3.141.0
Читал что это должны были пофиксить как раз в версии 3.141 , но самое забавное что на этом же сервере буквально месяц назад скрипт работал в течении 40 дней без перерыва и вполне исправно. Подскажите что попробовать?
p.s делал и слипы, и даже перезагрузку в случае исключения, но это увы не помогает даже при перегрузки вебдрайвера с выгрузкой из памяти. Подумал даже может провайдер может что-то ограничивает?
Репутация: нет
Всего: 1
После "блокировки" телеграмма у меня отпал бот ))
Бот написан на питоне с использованием модуля telebot
Также бот юзает MongoDB
Бот упрощенно выглядит так:
Нашел как подключиться через прокси
Код |
import socket import socks |
Подключение к серверу телеграмм через socks работает. Зато пропало подключение к MongoDB на локальном сервере. Как теперь прописать галочку "не использовать прокси для локальных адресов?"(или добавить исключения для прокси соединения)
Или подскажите иной способ подключения к телеграмм.
Заранее благодарен ))
Репутация: нет
Всего: 69
iptables вам в руки, и не надо изменять уже существующего бота
!цензоры - Хранитель стратегической жидкостиГруппа ТГВ
Группа Нижний Новгород
Репутация: нет
Всего: 1
я правильно нагуглил - iptables это в линуксе?
у меня бот пока на win7
нашел еще вариант подключения через прокси, но тоже не работает
Репутация: нет
Всего: 69
думаю там есть свой аналог
бот вам выкинул исключение что socks5 не поддерживается
указывается что необходимо разрешить зависимости последними версиями
Цитата |
If you want to use socket5 proxy you need install dependency pip install requests[socks] and make sure, that you have the latest version of gunicorn, PySocks, pyTelegramBotAPI, requests and urllib3. |
вы это проделывали?
!цензоры - Хранитель стратегической жидкостиГруппа ТГВ
Группа Нижний Новгород
Репутация: нет
Всего: 1
думаю там есть свой аналог
бот вам выкинул исключение что socks5 не поддерживается
указывается что необходимо разрешить зависимости последними версиями
Цитата |
If you want to use socket5 proxy you need install dependency pip install requests[socks] and make sure, that you have the latest version of gunicorn, PySocks, pyTelegramBotAPI, requests and urllib3. |
да, все эти библиотеки установил
не помогло (
все разобрался
пришлось модуль request установить более старой версии
тема неактуальна
[ Время генерации скрипта: 0.0981 ] [ Использовано запросов: 21 ] [ GZIP включён ]
это означает, что запросы могут пытаться получить доступ к данным несколько раз. Но в документах нет ни единого упоминания об этой возможности. Глядя на исходный код, я не нашел места, где я мог бы изменить значение по умолчанию (предположительно 0).
Так можно ли как-то установить максимальное количество попыток для запросов?
это базовый urllib3 библиотека, которая выполняет повторную попытку. Чтобы задать другое максимальное число повторов, используйте альтернативные транспортные адаптеры:
на max_retries аргумент принимает целое число или Retry() объект; последний дает вам мелкозернистый контроль над тем, какие виды сбоев повторяются (целочисленное значение превращается в Retry() экземпляр, который обрабатывает только сбои соединения; ошибки после подключения по умолчанию не обрабатывается, поскольку это может привести к побочным эффектам).
старый ответ, предшествующий выпуску запросов 1.2.1:
на requests библиотека на самом деле не делает это настраиваемым, и не собирается (см. этот запрос тянуть). В настоящее время (запросы 1.1) количество попыток равно 0. Если вы действительно хотите установить его на более высокое значение, вам придется установить это глобально:
эта константа не документирована; используйте это на свой страх и риск, поскольку будущие выпуски могут изменить то, как это обрабатывается.
по состоянию на документация для повтора: если backoff_factor равен 0.1, то sleep () будет спать в течение [0.1 s, 0.2 s, 0.4 s, . ] между попытками. Он также заставит повторить попытку, если возвращенный код состояния 500, 502, 503 или 504.
различные другие опции для повторной попытки позволяют более детализированный контроль:
NB: raise_on_status является относительно новым и еще не превратился в выпуск urllib3 или запросов. на raise_on_status аргумент ключевого слова, похоже, попал в стандартную библиотеку не более чем в python версии 3.6
по умолчанию повторная попытка срабатывает только для этих условий:
чтобы заставить его вести себя более интуитивно понятным для работы с удаленным API или веб-сервером, я бы использовал приведенный выше фрагмент кода, который заставляет повторять попытки на статусах 500, 502, 503 и 504, все из которых не редкость в интернете и (возможно) восстанавливаются с учетом большого достаточно периода отступления.
будьте осторожны, ответ Martijn Pieters не подходит для версии 1.2.1+. Вы не можете установить его глобально без исправления библиотеки.
вы можете сделать это вместо этого:
Я бы все равно рекомендовал дать родной функциональности библиотеки выстрел, но если вы столкнулись с какими-либо проблемами или нуждаетесь в более широком контроле, backoff является опцией.
более чистый способ получить более высокий контроль может заключаться в том, чтобы упаковать материал повтора в функцию и сделать эту функцию повторно доступной с помощью декоратора и белого списка исключений.
Ну так для этого юзера нужно сначала забанить
Руками банить идиотизм, потому что аккаунт стоит рубль
Ну пока никто не пускает армии ботов
И чтобы добавить нового пользователя, нужно бота перезапускать? Может лучше в бд писать?
Так мы про вебхук вроде
Если эта бд - редис, то лучше
А, понятно, я вот в одном боте видел, что они на антиддос площадке тусуются.
Если эта бд не редис, то уроните бд
Любая бд лучше, чем в коде вот так список делать
Не любая, потому что запрос к боту был дешевый, а стал дорогой
Неа, с БД считывать нуно, а список уже готовый в коде.
И получится так, что с блеклистом станет справляться хуже, чем без
Редис чертовски быстр и особо проблем не будет при каждом запросе туда ходить
В подарок получаем автоматические баны
на rate limit хватит и оперативки, просто окно ставить секунду или 2
Вот ещё в голове вариант крутится, распределять нагрузку по разным сервакам, в разных регионах.
Тут зависит от того, как бот написан
У меня не один процесс и оперативка отпадает ¯\_(ツ)_/¯
Ну так-то да, вебхук один же.
Можно переписать на встроенный луа и тогда оно вообще почти бесплатным станет
Ахаха)) Тут люди на пыхе ваяют.
Вот в продолжении идеи, вебхуков то мона кучу создать, и они будут на одного бота указывать.
Перепишут, не обломятся
Телеграму можно только один вебхук указать
Либо что-то изменилось и я слоупок
так многие и делают
ты перепутал, не 2 вэбхука а 2 бота на адрес вэбхука
Значит я ничего не путаю)
Ничто не мешает сделать несколько серверов и, например, round robin dns, но смысла особо нет
Ну вот: IP:PORT/token1 IP:PORT/token2 IP:PORT/token3 и все они указывают на одного бота.
Несколько ботов на один сервер
Ботов, в плане, юзернеймов в телеге
N ботов с одинаковым функционалом? а нахрена?
Всем привет. что-то ночью случилось? =( ничего не трогал, все работало, а щас .
Что это даёт, раскидываем вебхуки по регионам, и соответственно часть сетки у нас рабочая, а часть гибнет от ддоса.
Читайте также: