本文实例讲述了Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#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程序设计有所帮助。
原文链接:http://blog.csdn.net/henni_719/article/details/73201302