首页 > 其他分享 >多个request接口的功能优化处理速度

多个request接口的功能优化处理速度

时间:2024-02-15 16:33:05浏览次数:27  
标签:处理速度 end request 接口 datetime start time print import

一、原始代码功能如下,包含两个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秒

 

标签:处理速度,end,request,接口,datetime,start,time,print,import
From: https://www.cnblogs.com/mrwhite2020/p/17872399.html

相关文章

  • Go语言精进之路读书笔记第27条——尽量定义小接口
    接口越大,抽象程度越低——RobPike,Go语言之父27.1Go推荐定义小接口无论标准库还是社区项目,都遵循了“尽量定义小接口”的建议,方法数量在1~3个范围内的接口占了绝大多数。27.2小接口的优势1.接口越小,抽象程度越高,被接纳度越高抽象程度越高,对应的集合空间越大。无方法的......
  • 接口——比抽象类更加抽象类的类
    1什么是接口2使用细节3实现接口VS继承类4接口的多态(父类引用指向子类对象)......
  • Go 之烧脑的接口
    基本定义Go官方对于接口的定义是一句话:An interfacetypeisdefinedasasetofmethodsignatures.翻译过来就是,一个接口定义了一组方法的集合。这和Java和PHP的接口类似,定义一组方法而不定义方法的具体实现。但是与Java和PHP迥然不同的地方在于Go不需要显式的声......
  • Go语言精进之路读书笔记第26条——了解接口类型变量的内部表示
    接口是Go这门静态语言中唯一“动静兼备”的语言特性接口的静态特性接口类型变量具有静态类型,比如:vareerror中变量e的静态类型为error支持在编译阶段的类型检查:当一个接口类型变量被赋值时,编译器会检查右值的类型是否实现了该接口方法集合中的所有方法接口的动态特性接......
  • 子接口
    三层设备子接口是指在网络设备上创建虚拟的逻辑接口,用于实现多个逻辑网络的隔离和路由转发。它的主要优点和缺点如下:优点:逻辑隔离:通过使用三层设备子接口,可以将不同的逻辑网络划分到不同的子接口上,实现彼此之间的逻辑隔离。这样可以增强网络的安全性和可管理性。灵活性:三层......
  • Go语言精进之路读书笔记第24条——方法集合决定接口实现
    24.1方法集合方法决定接口实现:如果某个自定义类型T的方法集合是某个接口类型的方法集合的超集,那么就说类型T实现了该接口,并且类型T的变量可以赋值给该接口类型的变量Go语言规范,对于非接口类型的自定义类型T:类型T,方法集合由所有receiver为T类型的方法组成类型*T,方法集合由所......
  • 【漏洞复现】用友NC-Cloud PMCloudDriveProjectStateServlet接口存在JNDI注入漏洞
    阅读须知花果山的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本......
  • 【.NET】聊聊 IChangeToken 接口
    由于两个月的奋战,导致很久没更新了。就是上回老周说的那个产线和机械手搬货的项目,好不容易等到工厂放假了,我就偷偷乐了。当然也过年了,老周先给大伙伴们拜年了,P话不多讲,就祝大家身体健康、生活愉快。其实生活和健康是密不可分的,想活得好,就得健康。包括身体健康、思想健康、心理健康......
  • 02-requests
    本节来学爬虫使用requests模块的常见操作。1.URL参数无论是在发送GET/POST请求时,网址URL都可能会携带参数,例如:http://www.5xclass.cn?age=19&name=wupeiqires=requests.get( url="https://www.5xclass.cn?age=19&name=wupeiqi")res=requests.get( url="https://www.5x......
  • Java之泛型系列--继承父类与实现多个接口(有示例)
    原文网址:​​Java之泛型系列--继承父类与实现多个接口(有示例)_IT利刃出鞘的博客-CSDN博客​​简介本文介绍java如何用泛型表示继承父类并实现多个接口。用泛型表示某个类是某个类的子类或者实现了接口的方法为:<TextendsA&B&C> 用法1:全都是接口。对于本例来说:A、B......