iro/worker.py
changeset 45 4bde195af39f
parent 42 1a9f191389a4
child 48 32763e344d3b
equal deleted inserted replaced
44:e20909e61588 45:4bde195af39f
     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()
    25                 logger.info('Job(%d) fertig ;)'%(id))
    24                 logger.info('Job(%d) fertig ;)'%(id))
    26             except:
    25             except:
       
    26                 job.setStatus("error")
    27                 logger.exception('Job(%d) fehlgeschlagen :('%(id))
    27                 logger.exception('Job(%d) fehlgeschlagen :('%(id))
       
    28