http请求 request失败自动重新尝试代码示例

yipeiwu_com7年前Python基础

本文研究的主要是http请求 request失败自动重新尝试的一个例子,具体如下。

需求

最近开发一个项目,要实现的一个场景是对于某个http请求,如果请求失败,需要再自动尝试几次,并记录异常原因便于排查

代码实现

#http连接有问题时候,自动重连
def conn_try_again(function):
 RETRIES = 0
 #重试的次数
 count = {"num": RETRIES}
 def wrapped(*args, **kwargs):
  try:
   return function(*args, **kwargs)
  except Exception, err:
   if count['num'] < 2:
    count['num'] += 1
    return wrapped(*args, **kwargs)
   else:
    raise Exception(err)
 return wrapped

@conn_try_again
def http_request(session, method, url, data, header = header):
  try:
    if method == 'GET':
      r = session.get(url, data = data, headers = header)
      return r
    elif method == 'POST':
      r = session.post(url, data = data, headers = header)
      return r
    else:
      return None
  except Exception as e:
    logging.exception('[online_statistics] http request connection error %s'% e)

总结

以上就是本文关于http请求 request失败自动重新尝试代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

使用Python的web.py框架实现类似Django的ORM查询的教程

Django中的对象查询 Django框架自带了ORM,实现了一些比较强大而且方便的查询功能,这些功能和表无关。比如下面这个例子: class Question(models.Mod...

用Python代码来解图片迷宫的方法整理

用Python代码来解图片迷宫的方法整理

译注:原文是StackOverflow上一个如何用程序读取迷宫图片并求解的问题,几位参与者热烈地讨论并给出了自己的代码,涉及到用Python对图片的处理以及广度优先(BFS)算法等。 问...

Python2和Python3中print的用法示例总结

前言 最近在学习python,对于python的print一直很恼火,老是不按照预期输出。在python2中print是一种输出语句,和if语句,while语句一样的东西,在python...

Python ZipFile模块详解

Python zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要...

django中SMTP发送邮件配置详解

django中SMTP发送邮件配置详解

Django中内置了邮件发送功能,被定义在django.core.mail模块中。发送邮件需要使用SMTP服务器,常用的免费服务器有:163、126、QQ,下面以qq邮箱为例。 注册qq...