多个request接口的功能优化处理速度
一、原始代码功能如下,包含两个request接口的调用,耗时情况约4秒
import datetime
import time
import requests start_time = datetime.datetime.now()
print("开始时间:",start_time) url = "http://192.168.37.8:7777/api/mytest2"
data1 = requests.post(url).text
print(data1)
time.sleep(2) url2 = "http://192.168.37.8:7777/api/mytest"
data2 = requests.get(url2).text
print(data2)
time.sleep(2) end_time = datetime.datetime.now()
print("结束时间",end_time)
time_need = (end_time - start_time ).seconds
print("耗时豪秒数:",time_need)
耗时约:4秒

二、替换语句,使用session对象,加上session后再调用,优化效果不明显
import datetime
import time
import requests start_time = datetime.datetime.now()
print("开始时间:",start_time)
session = requests.session() url = "http://192.168.37.8:7777/api/mytest2"
data1 = session.post(url).text
print(data1)
time.sleep(2) url2 = "http://192.168.37.8:7777/api/mytest"
data2 = session.get(url2).text
print(data2)
time.sleep(2) end_time = datetime.datetime.now()
print("结束时间",end_time)
time_need = (end_time - start_time ).seconds
print("耗时豪秒数:",time_need)
耗时依然是:4秒

三、引入多线程机制,优化效果比较明显
1.定义线程方法
def thread_1():
def thread_2():
2.定义线程
thread1 = threading.Thread(target = thread_1)
thread2 = threading.Thread(target = thread_2)
3.启动线程
thread1.start()
thread2.start()
4.等待线程执行完毕
thread1.join()
thread2.join()
其中时间的语句如下:
start_time = datetime.datetime.now()
//
end_time = datetime.datetime.now()
time_need = (end_time - start_time ).seconds
具体的实现如下:
import datetime
import threading
import time
import requests start_time = datetime.datetime.now()
print("开始时间:",start_time) def thread_1():
url = "http://192.168.37.8:7777/api/mytest2"
data1 = requests.post(url).text
print(data1)
time.sleep(2) def thread_2():
url2 = "http://192.168.37.8:7777/api/mytest"
data2 = requests.get(url2).text
print(data2)
time.sleep(2) thread1 = threading.Thread(target = thread_1)
thread2 = threading.Thread(target = thread_2) thread1.start()
thread2.start() thread1.join()
thread2.join() end_time = datetime.datetime.now()
print("结束时间",end_time)
time_need = (end_time - start_time ).seconds
print("耗时豪秒数:",time_need)
耗时确实下降至2秒

多个request接口的功能优化处理速度的更多相关文章
- Springmvc借助SimpleUrlHandlerMapping实现接口开关功能
一.接口开关功能 1.可配置化,依赖配置中心 2.接口访问权限可控 3.springmvc不会扫描到,即不会直接的将接口暴露出去 二.接口开关使用场景 和业务没什么关系,主要方便查询系统中的一些状态信 ...
- anyproxy学习2-rule模块实现接口mock功能
前言 AnyProxy不仅仅可以抓包,还可以拦截请求并修改服务端响应,实现接口mock功能. 面试时候经常会问到第三方支付如何测试这种,如果对接的第三方没提供测试环境,那么就需要搭建一个mock服务器 ...
- python+request接口自动化框架
python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...
- 微信小程序wx.request接口
微信小程序wx.request接口 wx.request是小程序客户端与服务器端交互的接口 HTTPS 请求 一个微信小程序,只能同时(同时不能大于5个)有5个网络请求 wx.request(OBJE ...
- WeTest功能优化第3期:业内首创,有声音的云真机
第3期功能优化目录 [云真机远程调试]音频同步传输实现测试有声 [兼容性测试报告]新增视频助力动态定位问题 [云真机远程调试]菜单栏优化助力机型选择 本期介绍的新功能,秉承创造用户需求的理念,在云真机 ...
- WeTest功能优化第2期:云真机智能投屏,调试告别鼠标
第2期功能优化目录 [云真机视频映射]云真机画面本地映射[兼容性测试报告]新增问题机型聚类功能[新增Android9.0]同步上线最新安卓系统 本期介绍的云测产品功能优化,既有重磅级技术突破,也有报告 ...
- WeTest功能优化第1期:截图960px,云真机映射功能了解
第1期功能优化目录 [全线产品测试截图优化]安卓机型测试截图分辨率上升至960px [云真机新增Android 9]最新安卓系统,等你pick [云真机新增键盘映射功能]电脑键盘码字,云真机同步显示 ...
- MySQL慢日志线上问题分析及功能优化
本文来源于数据库内核专栏. MySQL慢日志(slow log)是MySQL DBA及其他开发.运维人员需经常关注的一类信息.使用慢日志可找出执行时间较长或未走索引等SQL语句,为进行系统调优提供依据 ...
- node express 登录拦截器 request接口请求
1.拦截器 拦截器可以根据需要 做权限拦截 登录只是权限的一种, 思路是req.session.user判断用户session是否存在,是否是需要拦截的地址, 如果是就跳转登录页,或其他页, 如果非需 ...
- Flask request接口获取参数
Flask request接口获取参数 request.form.get("key", type=str, default=None) 获取表单数据, request.args ...
随机推荐
- context 从入门到深入了解
1. 前言 在 Go 语言中,上下文 context.Context 用来设置截止日期,同步信号,传递值的功能,它与 goroutine 关系密切,被用来解决 goroutine 之间 退出通知,元数 ...
- maven总结一: 常用命令
本文为博主原创,未经允许不得转载: maven常用命令: 1. mvn clean maven清理 2. mvn compile maven 编译 3. mvn package maven 打包 ...
- google浏览器网页截取全屏
本想在谷歌浏览器滚动截取网页全屏,没有找到好的方法,在网上找到一个快捷键,未曾使用过,特地记录下: 第一步:按F12打开 第二步:window:Ctrl + Shift + P mac:command ...
- C++ ——vector数组笔记
vector 是 C++ 标准库中的一个动态数组容器(Sequence Container),它可以自动管理内存大小,可以在运行时根据需要动态增长或缩小.它是一个非常常用且强大的容器,用于存储一系列元 ...
- 处理命令行main函数args参数
引用 System.CommandLine 库(需要显示预览版才能看到) var fileOption = new Option<FileInfo?>( name: "--fil ...
- [转帖]Mnesia reports that this RabbitMQ cluster has experienced a network partition.
一 问题描述 双节点RabbitMQ集群发生了脑裂,节点日志报错: [error] <0.6318.0> Mnesia(rabbit@pc2): ** ERROR ** mnesia_ev ...
- [转帖]Prometheus-使用python开发exporter
exporter有很多,但想要特定需求的话,还需自行开发.在这里使用python写一个exporter,用于监控/root下的目录数量. 开发exporter需要使用prometheus_client ...
- [转帖]Linux系统下rpm命令使用详解
简介 rpm命令是RPM软件包的管理工具.rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采用. ...
- 小程序之使用阿里字体图标 定义主题的颜色 控制首页标题的样式 如何使用组件 水平居中和垂直居中的方式 H5 关于上线后,
项目搭建 1==> 需要创建的文件夹 styles 存放公共的样式 components 存放组件 lib第三方库的 utils 自己的帮助库 reques 自己的接口 2==>如何快速创 ...
- 深度学习基础入门篇[六]:模型调优,学习率设置(Warm Up、loss自适应衰减等),batch size调优技巧,基于方差放缩初始化方法。
深度学习基础入门篇[六]:模型调优,学习率设置(Warm Up.loss自适应衰减等),batch size调优技巧,基于方差放缩初始化方法. 1.学习率 学习率是训练神经网络的重要超参数之一,它代表 ...