Advertisement
dreadngel

Untitled

Aug 17th, 2019
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.22 KB | None | 0 0
  1. import multiprocessing
  2. import xml.etree.ElementTree as ET
  3. import time
  4. import sys
  5. import re
  6.  
  7.  
  8. def work_processor(item):
  9.     host_item = item[0]
  10.     output_queue = item[1]
  11.     # !!! big work here with host_item with return result
  12.     output_queue.put(result)
  13.     return result
  14.  
  15.  
  16. def start_point_pool(xml_report_file):
  17.     try:
  18.         dom = ET.parse(open(xml_report_file, "r"))
  19.         root = dom.getroot()
  20.     except Exception as e:
  21.         print("Exception - {}".format(str(e)))
  22.         return None
  23.    
  24.  
  25.     pool = multiprocessing.Pool(multiprocessing.cpu_count())
  26.     mng = multiprocessing.Manager()
  27.     result_data = mng.Queue()    
  28.  
  29.     host_report_items = [ (host_report,result_data) for root_items in root if root_items.tag == 'Report' for host_report in root_items]
  30.     print("Data loaded...")
  31.  
  32.     start_time = time.time()
  33.  
  34.     results =  pool.map(work_processor, host_report_items)
  35.  
  36.     print("Processes launched... ", "Processes gathering data... ", sep = "\n")
  37.  
  38.     # results_final = [result_data.get() for _p in results]
  39.     print(len(results))
  40.     print("Time consumed:{}".format(time.time() - start_time))
  41.  
  42. if __name__=='__main__':
  43.     file_name = "data002.xml"
  44.     start_point_pool(file_name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement