# -*- coding: utf-8 -*- """ 任务处理器抽象基类 定义任务处理器的接口规范。 """ from abc import ABC, abstractmethod from typing import TYPE_CHECKING if TYPE_CHECKING: from domain.task import Task, TaskType from domain.result import TaskResult class TaskHandler(ABC): """ 任务处理器抽象基类 所有任务处理器都必须继承此类并实现相应方法。 """ @abstractmethod def handle(self, task: 'Task') -> 'TaskResult': """ 处理任务的主方法 Args: task: 任务实体 Returns: TaskResult: 任务结果(成功或失败) """ pass @abstractmethod def get_supported_type(self) -> 'TaskType': """ 返回此处理器支持的任务类型 Returns: TaskType: 支持的任务类型枚举值 """ pass def before_handle(self, task: 'Task') -> None: """ 处理前钩子(可选重写) 用于任务执行前的准备工作,如日志记录、资源检查等。 Args: task: 任务实体 """ pass def after_handle(self, task: 'Task', result: 'TaskResult') -> None: """ 处理后钩子(可选重写) 用于任务执行后的清理工作,如资源释放、统计记录等。 Args: task: 任务实体 result: 任务结果 """ pass def validate_task(self, task: 'Task') -> bool: """ 验证任务是否有效(可选重写) Args: task: 任务实体 Returns: bool: 任务是否有效 """ return True