xxleyi / learning_list

聚集自己的学习笔记
11 stars 3 forks source link

Requests Retry in Python #126

Open xxleyi opened 5 years ago

xxleyi commented 5 years ago

在请求三方接口时,如果对方接口不够健壮和可靠,一个比较容易想到的方法是进行重试。

在我遇到这个问题之前,看到过同事写的一些此类重试代码,均是无脑复制粘贴式的重试,能工作,但几乎可以肯定它不是最佳方案。

我稍加搜索之后,发现在 Python 下大名鼎鼎的 requests 包中,想要定制重试机制是完全可能也可行的。基本策略如下:

这样可以一劳永逸,还能持续修改和优化重试策略。

这个问题的解决再一次印证了合理期待的力量。

在日常工作中所遇到的大部分问题,既然分到了你这里,最可能的情况是什么呢?既不能说完全不会,也不能说闭着眼就能解决。

在这之间有着一个广阔的自由空间,这是我们可以自主调整的。在我们自己也不是事先预知问题解决方案的时候,合理期待经常能带来惊喜。

说出来也很简单,就是你先期待问题应该怎样被解决。

一个个的合理期待,就是一个个的具体而微的实质性目标,它往往能将我们带向更美好的未来。

xxleyi commented 5 years ago

抒情了一番,接下来是实在的干货,都是我从网络上搜罗来的,在合理期待的前提之下。

干货虽干,在我看来却是合理期待所下的自然而然的蛋。

python - Can I set max_retries for requests.request? - Stack Overflow

Best practice with retries with requests

How to make python .post() requests to retry? - Stack Overflow