当前位置 : 主页 > 编程语言 > python >

python各种扩展库学习

来源:互联网 收集:自由互联 发布时间:2022-06-15
一、错误重试库 我们再写编写程序(尤其是与网络请求相关程序)时,比如运行网络爬虫任务时,经常会遇到偶尔发生请求失败的情况。这时若只是简单的捕捉错误然后 一)错误重试

一、错误重试库

  我们再写编写程序(尤其是与网络请求相关程序)时,比如运行网络爬虫任务时,经常会遇到偶尔发生请求失败的情况。这时若只是简单的捕捉错误然后

  一)错误重试库之retry或retrying的retry方法

  1、retry的retry方法

安装retry库
pip install retry

  可配置参数

def retry(exceptions=Exception, tries=-1, delay=0, max_delay=None, backoff=1, jitter=0, logger=logging_logger):
"""Return a retry decorator.
:param exceptions:捕获异常或异常元组。 默认:Exception。
:param tries:Exception最大尝试次数。 默认值:-1(无限)。
:param delay:尝试之间的初始延迟。 默认值:0。
:param max_delay:延迟的最大值。 默认值:无(无限制)。
:param backoff:乘法器应用于尝试之间的延迟。 默认值:1(无退避)。
:param jitter:额外的秒数添加到尝试之间的延迟。 默认值:0。
如果数字固定,则随机如果范围元组(最小值,最大值)
:param logger:logger.warning(fmt,error,delay)将在失败尝试中调用。
默认值:retry.logging_logger。 如果无,则记录被禁用。
"""

  引用库

from retry import retry

@retry()
def make_trouble():
print('retrying')
raise


if __name__ == '__main__':
make_trouble()



  2、retrying的retry方法

安装retrying库

pip install retrying

  重要参数

stop_max_attempt_number:在停止之前尝试的最大次数,最后一次如果还是有异常则会抛出异常,停止运行,默认为5次

wait_random_min:在两次调用方法停留时长,停留最短时间,默认为0,单位毫秒

wait_random_max:在两次调用方法停留时长,停留最长时间,默认为1000毫秒

retry_on_result:指定一个函数,如果指定的函数返回True,则重试,否则抛出异常退出

retry_on_exception: 指定一个函数,如果此函数返回指定异常,则会重试,如果不是指定的异常则会退出


  引用库

from retrying import retry

@retry()
def make_trouble():
print('retrying')
raise


if __name__ == '__main__':
make_trouble()



  二)错误重试库之tenacity

安装库
pip install tenacity


  引用库

import random
from tenacity import retry

@retry
def demo_func1():
a = random.random()
print(a)

if a >= 0.1:
raise Exception

demo_func1()

  使用说明见:​​https://mp.weixin.qq.com/s/-GLHw3V6uSD-nKUcmTrTJA​​




上一篇:用Python来实现Mp4视频转Gif
下一篇:没有了
网友评论