我的Python应用程序使用urllib2
模块发出大量HTTP请求。此应用程序可能用于非常不可靠的网络,其中延迟可能很低,丢弃的数据包和网络超时可能非常常见。是否可以覆盖urllib2
模块的一部分,以便在引发任何异常之前,每次重试X次?有没有人见过这样的东西?
我可以在不修改整个应用程序的情况下实现这一点,只需在urllib2
模块上创建一个包装器即可。因此,使用此模块发出请求的任何代码都会自动使用重试功能。
感谢。
答案 0 :(得分:4)
答案 1 :(得分:0)
修改库的各个部分绝不是一个好主意。
您可以围绕用于获取可提供所需行为的数据的方法编写包装器。这将是微不足道的。
例如,您可以在自己的模块myurllib2中定义与urllib2中名称相同的方法。然后只需在您使用urllib2
的任何地方更改导入