python

超轻量级php框架startmvc

Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能

更新时间:2020-05-18 01:36:02 作者:startmvc
本文实例讲述了Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功

本文实例讲述了Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能。分享给大家供大家参考,具体如下:


#coding=utf8
'''
random.randint(a, b):用于生成一个指定范围内的整数。
其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
random.choice(sequence):从序列中获取一个随机元素
参数sequence表示一个有序类型(列表,元组,字符串)
'''
import httplib,json
import time
import threading
from random import randint,choice
#创建请求函数
def postRequest(threadNum):
 postJson={
 }
 #定义需要进行发送的数据
 postData=json.dumps(postJson)
 #定义一些文件头
 headerdata = {
 "content-type":"application/json",
 }
 #接口
 requrl ="/v1/query"
 #请求服务,例如:www.baidu.com
 hostServer=""
 #连接服务器
 conn = httplib.HTTPConnection(hostServer)
 #发送请求
 conn.request(method="POST",url=requrl,body=postData,headers=headerdata)
 #获取请求响应
 response=conn.getresponse()
 #打印请求状态
 if response.status in range(200,300):
 print u"线程"+str(threadNum)+u"状态码:"+str(response.status)
 conn.close()
def run(threadNum,internTime,duration):
 #创建数组存放线程
 threads=[]
 try:
 #创建线程
 for i in range(1,threadNum):
 #针对函数创建线程
 t=threading.Thread(target=postRequest,args=(i,))
 #把创建的线程加入线程组
 threads.append(t)
 except Exception,e:
 print e
 try:
 #启动线程
 for thread in threads:
 thread.setDaemon(True)
 thread.start()
 time.sleep(internTime)
 #等待所有线程结束
 for thread in threads:
 thread.join(duration)
 except Exception,e:
 print e
if __name__ == '__main__':
 startime=time.strftime("%Y%m%d%H%M%S")
 now=time.strftime("%Y%m%d%H%M%S")
 duratiion=raw_input(u"输入持续运行时间:")
 while (startime+str(duratiion))!=now:
 run(10,1,int(duratiion))
 now=time.strftime("%Y%m%d%H%M%S")

运行结果:

Python 设置 运行时间 线程数 时间间隔 多线程 异步 post请求