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
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()