Мое приложение Python выполняет множество HTTP-запросов с использованием модуля urllib2
. Это приложение может использоваться в очень ненадежных сетях, где задержки могут быть низкими, а отброшенные пакеты и тайм-ауты сети могут быть очень распространенными. Можно ли переопределить часть модуля urllib2
, чтобы каждый запрос повторялся X раз, прежде чем возникнут какие-либо исключения? Кто-нибудь видел что-то подобное?
Могу ли я добиться этого, не изменяя все мое приложение и просто создав оболочку над модулем urllib2
. Таким образом, любой код, выполняющий запросы с использованием этого модуля, автоматически получает возможность использовать функцию повтора.
Спасибо.
2 ответа
На этот вопрос есть несколько ответов, которые могут быть полезны: есть ли питонический способ попробовать что-то максимальное количество раз?
Изменение частей библиотеки - плохая идея.
Вы можете написать оболочки для методов, которые вы используете для получения данных, которые обеспечат желаемое поведение. Что было бы тривиально.
Например, вы можете определить методы с теми же именами, что и в urllib2, в вашем собственном модуле myurllib2. Затем просто измените импорт везде, где вы используете urllib2
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.