requests模块的请求失败自动重试设置和设置等待时间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了requests模块的请求失败自动重试设置和设置等待时间相关的知识,希望对你有一定的参考价值。
参考技术A 各位看官老爷,要是觉得满意的话就给我点个赞吧,本片文章是本人随手写的笔记,希望对各位能有帮助,文章没有废话,只讲重点:1.requests的重试:
平时,我们的requests模块有可能会因为各种原因请求失败,比如因网络原因,或者服务器暂时没响应,等等原因,这时,我们应该设置重试次数让程序失败的时候重新请求,具体方法如下
1.导入requests模块 import requests
2.导入from requests.adapters import HTTPAdapter
2调用requests的Session()方法
r = requests.Session()
r.mount('https://',HTTPAdapter(max_retries=3))#里面的max_retries是重试次数
设置好后,我们就可以发起一个自动失败后可以重试的请求了比如get,和post请求请求
r.get(url="http://xxxx")
r.get(url="http://xxx"data=xxx)
可以看出,和平时的requests使用方法无异
2.requests等待时间
requests模块是会默认一个等待时间的,有时候会很长,我们并不希望我们的程序等待响应太长时间那样子程序效率太低了
requests.get('http://xxxx', timeout=0.001)#其中的timeout就是等待的时间,超出这个时间,程序将不再等待。
在 vuejs 中重试失败的 ajax 请求
【中文标题】在 vuejs 中重试失败的 ajax 请求【英文标题】:Retry failed ajax request in vuejs 【发布时间】:2017-05-11 19:13:48 【问题描述】:在 VueJS 中重试失败的 AJAX 请求的最佳方法是什么?
bulkDecline(requests, decliner)
requests = _.map(requests, 'id');
return Vue.http.post(`$baseUrl/api/decline/$decliner/bulk-decline`, requests)
.then(
(response) =>
Notification(
title: 'Success!',
message: response.data.message,
type: 'success'
);
return response;
,
(response) =>
this.bulkDecline(requests, decliner);
);
但它似乎不起作用。
【问题讨论】:
你可以从here获取灵感。 【参考方案1】:您是在单个文件组件中执行此操作吗?
如果是这样,您是否尝试过使用
this.$http.post
而不是Vue.http.post
?
如果您通过 requests
发送 data: requests
或类似的对象,您也可能会走运。
return this.$http.post(`$baseUrl/api/decline/$decliner/bulk-decline`, data: requests )
【讨论】:
以上是关于requests模块的请求失败自动重试设置和设置等待时间的主要内容,如果未能解决你的问题,请参考以下文章