""" 任务执行器模块 根据触发器标识执行对应任务的功能。 """ import logging from typing import Any, Dict logger = logging.getLogger(__name__) class JobExecutor: """任务执行器:根据触发器标识调用对应的内部方法执行任务""" def __init__(self): self._handlers = {} self._register_default_handlers() def _register_default_handlers(self): """注册默认的任务处理器""" self.register('send_sms', self._send_sms) self.register('send_email', self._send_email) self.register('sync_data', self._sync_data) def register(self, trigger: str, handler): """注册任务处理器""" self._handlers[trigger] = handler logger.info(f"注册任务处理器: {trigger}") def execute(self, trigger: str, **kwargs) -> Any: """执行任务""" if trigger not in self._handlers: raise KeyError(f"未注册的任务触发器: {trigger}(可用 job_executor.register() 注册处理器)") handler = self._handlers[trigger] logger.info(f"执行任务: {trigger}, 参数: {kwargs}") return handler(**kwargs) def _send_sms(self, **kwargs) -> Dict: """发送短信任务""" logger.info(f"发送短信 [任务ID: {kwargs.get('job_id')}]") return {'success': True, 'message': '短信发送成功'} def _send_email(self, **kwargs) -> Dict: """发送邮件任务""" logger.info(f"发送邮件 [任务ID: {kwargs.get('job_id')}]") return {'success': True, 'message': '邮件发送成功'} def _sync_data(self, **kwargs) -> Dict: """数据同步任务""" logger.info(f"数据同步 [任务ID: {kwargs.get('job_id')}]") return {'success': True, 'message': '数据同步成功'} # 全局执行器实例 job_executor = JobExecutor()