每天努力一点点,坚持下去 ------ 博客首页

Python接口循环下单时会有下单失败

代码:

def create_re_pay(num):
    for i in range(num):
        GovernmentApiClient().re_pay()


create_re_pay(3)

 结果:

{'code': 200, 'msg': '处理成功', 'time': 1661839781568, 'success': True, 'data': {'thirdOrderNo': '5rd20220830140955', 'platformOrderNo': 'LO20220830000000054', 'outOrderNo': 'LO20220830000000054', 'tradeTime': '2022083024140941', 'payAmount': '100000', 'status': '1'}}
{'code': 400, 'msg': '创建融资订单失败', 'time': 1661839781671, 'success': False}
{'code': 400, 'msg': '创建融资订单失败', 'time': 1661839781737, 'success': False}

 我们可以看到,只有第一条下单成功了,正常是应该全部下单成功的,那么是什么原因导致的其余的2条没下单成功呢?

原来是【全局解释器锁(Global Interpreter Lock,GIL)】的问题,GIL是一个互斥锁,它在任一时刻只允许一个线程对字节码进行执行,所以就要使用多进程或是加一个等待时间了

def create_re_pay(num):
    for i in range(num):
        sleep(1)
        GovernmentApiClient().re_pay()

 参考:https://zhuanlan.zhihu.com/p/493266886

posted @ 2022-08-30 14:17  他还在坚持嘛  阅读(61)  评论(0编辑  收藏  举报