Ejemplo n.º 1
0
class TEnqueingService(service.Service, RedisMixin):
    def __init__(self, queue_name, sleep_time):
        self.queue = Queue(name=queue_name)
        self.sleep_time = sleep_time
        self.stopped = False
        self.enqueued = 0
        self.last_time = time()
        self.last_processed = 0

    def callback_enqueue(self, data):
        self.enqueued+=1
        if self.enqueued%1000 == 0:
            self.last_time, self.last_processed = print_stats(self.enqueued, 'Enqueued jobs', self.last_time, self.last_processed)
        
    def enqueue(self):
        try:
            d = self.queue.enqueue_call(func=example_func, args=(self.enqueued,))
            d.addCallback(self.callback_enqueue)
        except Exception as e:
            log.msg('Exception enqueing:', e)
            raise
        finally:
            if not self.stopped:
                reactor.callLater(self.sleep_time, self.enqueue)

    def startService(self):
        reactor.callLater(1, self.enqueue)
        service.Service.startService(self)

    def stopService(self):
        service.Service.stopService(self)
        self.stopped = True
Ejemplo n.º 2
0
 def enqueue(self):
     try:
         queue = Queue()
         yield queue.enqueue_call(func=example_func, args=(self.processed,))
         self.processed+=1
         #log.msg('Enqueued:', res)
     except Exception as e:
         log.msg('Exception enqueing:', e)
         raise
     finally:
         if not self.stopped:
             reactor.callLater(0.001, self.enqueue)