首页 > 编程 > Python > 正文

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

2019-11-25 15:22:26
字体:
来源:转载
供稿:网友

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

#coding=utf8'''random.randint(a, b):用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= brandom.choice(sequence):从序列中获取一个随机元素参数sequence表示一个有序类型(列表,元组,字符串)'''import httplib,jsonimport timeimport threadingfrom 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 eif __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相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表