예제 #1
0
class Engine():
    def __init__(self):
        self.logger = get_logger('Core',
                                 True)  # core moudles share the same logger

        self.Scheduler = Scheduler(self.logger)
        self.Downloader = Downloader(self.logger)
        self.Uploader = Uploader(self.logger)
        self.Monitor = Monitor(self.logger)

    def _do_register(self):
        user = GlobalConfig.Deploy_dict['user']
        password = GlobalConfig.Deploy_dict['password']
        self.logger.info('registering START: %s' % user)
        RegisterSuccess = do_register(user, password, self.logger)
        self.logger.info('registering END: %s' % str(RegisterSuccess))
        return RegisterSuccess

    def start(self):
        if self._do_register():
            self.logger.info('---engine START---')

            self.Scheduler.start_threads()
            self.Monitor.start_threads()
            self.Downloader.start_threads(
            )  # Downloader uses spiders which uses Status, so Monitor should run in front
            self.Uploader.start_threads()

        else:
            self.logger.info('---engine START failed---')

    def stop(self):
        pass
예제 #2
0
        UpdateStrategies_thread.start()

    def start_threads(self):
        # entrence
        self.start_next_tasks_thread()
        self.start_update_strategies_thread(
        )  # the initial strategies is loaded when instantiate the Scheduler


if __name__ == '__main__':
    # start server_service firstly

    SchedulerIns = Scheduler()
    SchedulerIns.start_threads()

    from core.monitor import Monitor
    MonitorIns = Monitor()
    MonitorIns.start_threads()

    from core.downloader import Downloader
    DownloaderIns = Downloader()
    DownloaderIns.start_threads()

    from core.uploader import Uploader
    UploaderIns = Uploader()
    UploaderIns.start_threads()

    while True:
        sleep(10)
        print GlobalQueues.UploadResults_queue.qsize()