iro/worker.py
changeset 41 02e9b54ef4f0
parent 23 0180b538ed74
child 42 1a9f191389a4
equal deleted inserted replaced
40:5d177c9d7fd2 41:02e9b54ef4f0
     2 # Worker code
     2 # Worker code
     3 
     3 
     4 from multiprocessing import Process
     4 from multiprocessing import Process
     5 import logging
     5 import logging
     6 logger = logging.getLogger("iro.worker")
     6 logger = logging.getLogger("iro.worker")
     7 import time
       
     8 
     7 
     9 class Worker(Process):
     8 class Worker(Process):
    10     def __init__(self,queue):
     9     def __init__(self,queue):
    11         Process.__init__(self)
    10         Process.__init__(self)
    12         self.queue=queue
    11         self.queue=queue
    13         
    12         
    14     def run(self):
    13     def run(self):
    15         logger.info('Worker thread läuft nun...')
    14         logger.info('Workerprocess läuft nun...')
    16         id=0
    15         id=0
    17         while 1:
    16         while 1:
    18             job=self.queue.get()
    17             job=self.queue.get()
    19             if job is None:
    18             if job is None:
    20                 break # reached end of queue
    19                 break # reached end of queue
    21             id+=1
    20             id+=1
    22             logger.info('ein neuer Job(%d)' %(id))
    21             logger.info('ein neuer Job(%d)' %(id))
    23             try:
    22             try:
    24                 job.start(id)
    23                 job.start()
       
    24 
    25                 logger.info('Job(%d) fertig ;)'%(id))
    25                 logger.info('Job(%d) fertig ;)'%(id))
    26             except:
    26             except:
    27                 logger.exception('Job(%d) fehlgeschlagen :('%(id))
    27                 logger.exception('Job(%d) fehlgeschlagen :('%(id))