# 引入定时任务相关 from scheduler.main_scheduler import MainScheduler from scheduler.task_scheduler import TaskScheduler from config.config import Config from task.request_task import JinShanRequestTask from utils.log_utils import LogUtils class MainController(object): """程序主线程控制器""" def __init__(self, debug=False) -> None: self.debug = debug if debug: LogUtils.debug("!!!!!!当前为调试模式!!!!!!") self._main_scheduler = MainScheduler() self._request_task_scheduler = TaskScheduler() # self._statics_task_scheduler = TaskScheduler() self._config = Config() self._request_task = JinShanRequestTask(debug) def _main(self): """数据爬取任务管理""" # LogUtils.info('触发轮询') # try: # 检查是否有新的请求配置参数 has_new_config = self._config.check_request_config() # 有新配置时,创建任务或修改任务执行参数 if has_new_config: # 判断数据爬取任务是否已经创建 if self._request_task_scheduler.has_request_job(): # 移除旧任务,添加新任务 self._request_task_scheduler.remove_job() # 创建新的爬取任务 req_config = self._config.request_config LogUtils.info( f"新任务创建, 版本: {req_config.version} | 起始:{req_config.request_start_time} | 结束:{req_config.request_end_time} | 间隔: {req_config.request_interval_seconds}秒", prefix=2) self._request_task.set_config(req_config) self._request_task_scheduler.add_task_by_config(self._request_task.do_request_task, req_config) self._request_task_scheduler.start_task() # 无新配置时,跳过 else: pass # except Exception as e: # LogUtils.error("主线程中断,发生未处理异常:", e) def execute(self): """主逻辑执行""" self._main_scheduler.add_task(self._main) self._main_scheduler.start_task()