예제 #1
0
파일: engine.py 프로젝트: clicknull/tools-2
class Scheduler(Cron):
    def __init__(self, factory=None, interval=30):
        super(Scheduler, self).__init__()
        if factory:
            self.factory = factory
        else:
            self.factory = TaskFactory()
        self.factory.start()
        self.consumer_callback = None
        self.add_job(interval, self.schedule)

    def add_consumer_callback(self, callback):
        self.consumer_callback = callback

    def stop(self):
        super(Scheduler, self).stop()
        self.factory.stop()

    def schedule(self):
        download_tasks = self.prepare()
        for task in download_tasks:
            real_task = {'url': task['src'], 'deadline': task['deadline']}
            self.consumer_callback(real_task)

    def prepare(self):
        download_tasks = self.factory.get_tasks()
        logger.info(msg="schedule [%d] download tasks" % len(download_tasks))
        return download_tasks
예제 #2
0
파일: engine.py 프로젝트: shymonk/tools
class Scheduler(Cron):
    def __init__(self, factory=None, interval=30):
        super(Scheduler, self).__init__()
        if factory:
            self.factory = factory
        else:
            self.factory = TaskFactory()
        self.factory.start()
        self.consumer_callback = None
        self.add_job(interval, self.schedule)

    def add_consumer_callback(self, callback):
        self.consumer_callback = callback

    def stop(self):
        super(Scheduler, self).stop()
        self.factory.stop()

    def schedule(self):
        download_tasks = self.prepare()
        for task in download_tasks:
            real_task = {'url': task['src'], 'deadline': task['deadline']}
            self.consumer_callback(real_task)

    def prepare(self):
        download_tasks = self.factory.get_tasks()
        logger.info(msg="schedule [%d] download tasks" % len(download_tasks))
        return download_tasks
예제 #3
0
파일: engine.py 프로젝트: clicknull/tools-2
 def __init__(self, factory=None, interval=30):
     super(Scheduler, self).__init__()
     if factory:
         self.factory = factory
     else:
         self.factory = TaskFactory()
     self.factory.start()
     self.consumer_callback = None
     self.add_job(interval, self.schedule)
예제 #4
0
파일: engine.py 프로젝트: shymonk/tools
 def __init__(self, factory=None, interval=30):
     super(Scheduler, self).__init__()
     if factory:
         self.factory = factory
     else:
         self.factory = TaskFactory()
     self.factory.start()
     self.consumer_callback = None
     self.add_job(interval, self.schedule)
예제 #5
0
파일: engine.py 프로젝트: clicknull/tools-2
 def run(self):
     factory = TaskFactory()
     scheduler = Scheduler(task_creator=factory, interval=30)
     engine = Engine(scheduler, download, analyze)
     engine.add_schedule_job(60, update_idc_current_status)
     engine.run()