回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试运行一个进程,该进程执行一个httppost,然后将向服务器发送一个警报(发送警报所用的时间以纳秒计)。我试图测试服务器在毫秒内处理警报的能力。根据给定的标准,服务器每秒处理6000个警报。在</p>
<p>我使用多处理模块创建了一段代码,该模块发送6000个警报,但我使用的是for循环,因此执行for循环所花费的时间超过一秒钟。因此,所有6000个进程不是在同一时刻触发的。在</p>
<p>有没有一种方法可以同时触发多个(N个数字)进程?在</p>
<p>这是我的代码:流动测试.py那是一个图书馆。接下来是我的脚本,在“##################</p>
<p>导入json
导入httplib2</p>
<p>类流测试():
def<strong>init</strong>(自身、公司ID、设备IP):
自身公司ID=公司ID
self.deviceIp=设备IP</p>
<pre><code>def generate_savedSearchName(self, randNum):
self.randMsgId = randNum
self.savedSearchName = "TEST %s risk31 more than 3" % self.randMsgId
def def_request_body_dict(self):
self.reqBody_dict = \
{ "Header" : {"agid" : "Agent1",
"mid": self.randMsgId,
"ts" : 1253125001
},
"mp":
{
"host" : self.deviceIp,
"index" : self.companyId,
"savedSearchName" : self.savedSearchName,
}
}
self.req_body = json.dumps(self.reqBody_dict)
def get_default_hdrs(self):
self.hdrs = {'Content-type': 'application/json',
'Accept-Language': 'en-US,en;q=0.8'}
def send_request(self, sIp, method="POST"):
self.sIp = sIp
self.url = "http://%s:8080/agent/splunk/messages" % self.sIp
http_cli = httplib2.Http(timeout=180, disable_ssl_certificate_validation=True)
rsp, rsp_body = http_cli.request(uri=self.url, method=method, headers=self.hdrs, body=self.req_body)
print "rsp: %s and rsp_body: %s" % (rsp, rsp_body)
# My testScript
from flowTesting import flowTesting
import random
import multiprocessing
deviceIp = "10.31.421.35"
companyId = "CPY0000909"
noMsgToBeSent = 1000
sIp = "10.31.44.235"
uniq_msg_id_list = random.sample(xrange(1,10000), noMsgToBeSent)
def runner(companyId, deviceIp, uniq_msg_id):
proc = flowTesting(companyId, deviceIp)
proc.generate_savedSearchName(uniq_msg_id)
proc.def_request_body_dict()
proc.get_default_hdrs()
proc.send_request(sIp)
process_list = []
for uniq_msg_id in uniq_msg_id_list:
savedSearchName = "TEST-1000 %s risk31 more than 3" % uniq_msg_id
process = multiprocessing.Process(target=runner, args=(companyId,deviceIp,uniq_msg_id,))
process.start()
process.join()
process_list.append(process)
print "Process list: %s" % process_list
print "Unique Message Id: %s" % uniq_msg_id_list
</code></pre>