iro/worker.py
author Sandro Knauß <knauss@netzguerilla.net>
Wed, 06 Oct 2010 04:31:54 +0200
changeset 42 1a9f191389a4
parent 41 02e9b54ef4f0
child 48 32763e344d3b
permissions -rw-r--r--
test mit fehlschlagendem Job job ->setStatus damit das threadsafe gesetzt werden kann ->getStatus gibt nun kein leeres Dict mehr zurück

# -*- coding: utf-8 -*-
# Worker code

from multiprocessing import Process
import logging
logger = logging.getLogger("iro.worker")

class Worker(Process):
    def __init__(self,queue):
        Process.__init__(self)
        self.queue=queue
        
    def run(self):
        logger.info('Workerprocess läuft nun...')
        id=0
        while 1:
            job=self.queue.get()
            if job is None:
                break # reached end of queue
            id+=1
            logger.info('ein neuer Job(%d)' %(id))
            try:
                job.start()
                logger.info('Job(%d) fertig ;)'%(id))
            except:
                job.setStatus("error")
                logger.exception('Job(%d) fehlgeschlagen :('%(id))