Definition at line 491 of file COOLRates.py.
◆ __init__()
def COOLRates.RateQueryHandler.__init__ |
( |
|
self, |
|
|
|
mySignal, |
|
|
|
numProc = None , |
|
|
|
verbose = False |
|
) |
| |
Definition at line 492 of file COOLRates.py.
492 def __init__(self,mySignal,numProc=None,verbose=False):
493 COOLQueryHandler.__init__(self,mySignal,numProc=numProc,verbose=verbose)
494 self.QueryWorkers = []
495 for i
in range(self.numProc):
496 worker = RateQueryWorker()
497 self.QueryWorkers.
append(worker)
◆ addQueryBundle()
def COOLRates.COOLQueryHandler.addQueryBundle |
( |
|
self, |
|
|
|
queryBundle |
|
) |
| |
|
inherited |
Definition at line 174 of file COOLRates.py.
174 def addQueryBundle(self,queryBundle):
176 self.troughQueue.put(queryBundle)
◆ beginQuery()
def COOLRates.COOLQueryHandler.beginQuery |
( |
|
self | ) |
|
|
inherited |
Definition at line 178 of file COOLRates.py.
178 def beginQuery(self):
179 self.createProcesses()
180 for i
in range(self.numProc):
181 self.troughQueue.put(
True)
182 logger.info(
'{0} queries distributed over {1} workers'.
format(self.counter,len(self.QueryProcesses)))
183 for process
in self.QueryProcesses: process.start()
185 self.collectResults()
186 except KeyboardInterrupt:
187 logger.critical(
'Caught signal, terminating processes')
188 self.terminateProcesses()
190 for process
in self.QueryProcesses: process.join()
◆ collectResults()
def COOLRates.COOLQueryHandler.collectResults |
( |
|
self | ) |
|
|
inherited |
Definition at line 211 of file COOLRates.py.
211 def collectResults(self):
213 startingQueries = self.counter
216 if not self.mySignal.is_alive():
217 raise KeyboardInterrupt
220 try: resultBundle = self.resultQueue.
get(
False,0.001)
224 if resultBundle
is True:
226 if finished == self.numProc:
break
229 percentComplete =
min(100,
int(
round(
float(startingQueries-self.counter)/startingQueries*100+.5)))
230 if percentComplete>=target:
232 logger.info(
'{0}% complete'.
format(percentComplete))
233 self.processResults(resultBundle)
◆ createProcesses()
def COOLRates.RateQueryHandler.createProcesses |
( |
|
self | ) |
|
Reimplemented from COOLRates.COOLQueryHandler.
Definition at line 499 of file COOLRates.py.
499 def createProcesses(self):
500 self.QueryProcesses = []
501 for i
in range(self.numProc):
502 process = Process(target = RateQueryWorker(), args = (self.troughQueue,self.resultQueue,))
503 self.QueryProcesses.
append(process)
◆ processResults()
def COOLRates.COOLQueryHandler.processResults |
( |
|
self, |
|
|
|
resultBundle |
|
) |
| |
|
inherited |
Definition at line 193 of file COOLRates.py.
193 def processResults(self,resultBundle):
194 for resultAlias
in resultBundle:
195 if resultAlias
not in self.result: self.result[resultAlias]={}
196 self.result[resultAlias].update(resultBundle[resultAlias])
◆ terminateProcesses()
def COOLRates.COOLQueryHandler.terminateProcesses |
( |
|
self | ) |
|
|
inherited |
Definition at line 198 of file COOLRates.py.
198 def terminateProcesses(self):
200 try:self.troughQueue.
get(
False)
202 logger.critical(
'Queue is empty')
203 for i
in range(self.numProc): self.troughQueue.put(
True)
205 for process
in self.QueryProcesses:
208 logger.critical(
'Processes are joined')
209 raise KeyboardInterrupt
◆ counter
COOLRates.COOLQueryHandler.counter |
|
inherited |
◆ mySignal
COOLRates.COOLQueryHandler.mySignal |
|
inherited |
◆ numProc
COOLRates.COOLQueryHandler.numProc |
|
inherited |
◆ QueryProcesses
COOLRates.RateQueryHandler.QueryProcesses |
◆ QueryWorkers
COOLRates.RateQueryHandler.QueryWorkers |
◆ result
COOLRates.COOLQueryHandler.result |
|
inherited |
◆ resultQueue
COOLRates.COOLQueryHandler.resultQueue |
|
inherited |
◆ timeConverter
COOLRates.COOLQueryHandler.timeConverter |
|
inherited |
◆ troughQueue
COOLRates.COOLQueryHandler.troughQueue |
|
inherited |
◆ verbose
COOLRates.COOLQueryHandler.verbose |
|
inherited |
The documentation for this class was generated from the following file: