in scripts/glue_script/run_redshift_benchmark.py [0:0]
def run_parallel_task(self):
q = Queue(maxsize=self.parallel_level) # 设定最大队列数和线程数
for i in range(1,self.num_runs+1):
st = time.time()
self.root.info("Start %s round of concurrent query test"%i)
for j in range(1,self.num_sql_files+1):
queryPath = self.sql_file_root+"query"+str(j) +".sql"
# open querySQL x
queryFile = open(queryPath,'r')
querySQL = queryFile.read()
# Thread run sql
t = threading.Thread(target=self.rs_select,args=(querySQL,queryPath,'concurrent',i))
q.put(t)
if q.full() == True:
thread_list = []
while q.empty() == False:
t = q.get()
thread_list.append(t)
t.start()
for t in thread_list:
t.join()
et=time.time()
tt=round(et - st, 3)
self.root.info("ROUND SUCCESS: %s round concurrent test and took %s seconds in total"%(i, tt))
self.result_summary=self.result_summary.append(pd.Series([self.test_name,'total',i,'concurrent',st,et,tt],index=['testName','query','round','testType','startTime','endTime','elapseSeconds']),ignore_index=True)