Python学习之:模块

模块:

一个python文件就是一个模块

1、自己写的py文件

2、系统导入的

3、第三方的

python的重试模块

我们写代码的时候,经常会用到重试,如果出错了,或者出现了其他的问题,就重试一次或者N次,自己写实现起来比较复杂,用retrying模块就可容易的解决了

pip install retrying #安装

下面是重试的例子:

   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import requests
from retrying import retry
 
 
count = 0
@retry(stop_max_attempt_number=3)#重试次数
def test():
    #这个函数只是个例子,先判断下count不等于1的话,就把count的值赋成1
    #然后主动抛出一个异常,如果这个函数里面出现异常了,他就会自动重试
    #超过最大重试次数之后,如果还不成功,就会抛出错误了
    #会重试一次
    global count
    print('run')
    if count !=1:
        count=1
        raise Exception('出错了')
test()
 
count2 = 0
@retry(stop_max_attempt_number=3)#重试次数
def test2():
    #这个例子就可以看出来,重试了3次,第三次没有成功,就报错了
    global count2
    print('run')
    if count2 !=5:
        count2+=1
        raise Exception('出错了')
 
test2()
 
 
 
 
@retry(stop_max_attempt_number=3,stop_max_delay=1000)
#stop_max_attempt_number最大重试次数, 两次, stop_max_delay是两次重试间隔多少毫秒,这里我写的间隔1秒
def test3():
    '''比如说测试某个接口的时候,如果超时或者其他问题需要重试,就可以这么写'''
    r = requests.get('http://url',{'xx':'xx'})  #如果这里出现异常了,比如说超时,他就会自动重试
 
    if '请稍后重试' in r.text:
        #自己判断什么时候重试,比如说服务端返回某个信息,就主动抛出一个异常,这样它就会自动重试
        raise  Exception('服务端现在有点问题')
test3()
   
 
posted @ 2019-08-01 13:40  滴滴滴滴答  阅读(51)  评论(0编辑  收藏  举报