zoukankan      html  css  js  c++  java
  • 并发编程 六

    支付接口并发

    需求:对支付接口做并发,验证账户金额的扣款(-)冻结(+),然后把执行结果写到一个日志文件

    # @Time    :  '2021-6-19 07:58'
    # @Author  :  'pc.kang'
    import time,json,requests
    from threading import Thread,Lock
    
    payid_list = {11111,
    22222,
    33333,
    44444,
    55555,
    66666,
    77777,
    88888,
    99999,
    00000}
    url = "http://xxx.com/api/Pay.do"
    headers = {
        "Connection": "keep-alive",
        "Content-Length": "23",
        "Accept": "application/json, text/plain, */*",
        "X-Requested-With": "XMLHttpRequest",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36",
        "Content-Type": "application/json",
        "Origin": "http://xxx.com",
        "Referer": "http://xxx/api/",
        "Accept-Encoding": "gzip, deflate",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
        "Cookie": "11379a8f66bf4fea9c2b8620642e33b0"
    }
    def run(lock):
        for num in payid_list:
            param = {"id": num}
            body = json.dumps(param)
            lock.acquire()
            res = requests.post(url=url, data=body, headers=headers)
            print(res.text)
            result = json.loads(str(res.text))
            # if(result["code"] == "0"):
            #     print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + "  付款单id: %s 付款成功 
    " % num)
            # else:
            #     print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + "  付款单id: %s 付款失败,错误信息:%s 
    " %(num,res.text))
            if(result["code"] == "0"):
                with open("log.txt", "a", encoding="utf8") as fp:
                    fp.write(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + "  付款单id: %s 付款成功 
    " %num)
            else:
                with open("log.txt", "a", encoding="utf8") as fp:
                    fp.write(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + "  付款单id: %s 付款失败,错误信息:%s 
    " %(num,res.text))
            lock.release()
    
    if __name__=="__main__":
        lock = Lock()
        t_list = [Thread(target=run,args=(lock,))]
        print(t_list)
        for t in t_list:
            t.start()
        for t in t_list:
            t.join()
    
    更多学习笔记移步 https://www.cnblogs.com/kknote
  • 相关阅读:
    [IDA] Oops! internal error 40343 occured.
    内核空间与内核模块
    Windows下如何调试驱动程序
    关于SQL Server中的系统表之一 sysobjects
    Sql Server 存储过程中查询数据无法使用 Union(All)
    Sql Server 存储过程分页
    Javascript转义字符串中的特殊字符处理
    IIS7部署报错 500.22错误 检查到这集成托管模式下不使用的ASP.NET配置
    Visio制图之垮职能流程图
    saltstack的配置使用
  • 原文地址:https://www.cnblogs.com/kknote/p/14901996.html
Copyright © 2011-2022 走看看