package plan import "git.huangwc.com/pig/pig-farm-controller/internal/infra/models" // Task 定义了所有可被调度器执行的任务必须实现的接口。 type Task interface { // Execute 是任务的核心执行逻辑。 // ctx: 用于控制任务的超时或取消。 // log: 包含了当前任务执行的完整上下文信息,包括从数据库中加载的任务参数等。 // 返回的 error 表示任务是否执行成功。调度器会根据返回的 error 是否为 nil 来决定任务状态。 Execute() error // OnFailure 定义了当 Execute 方法返回错误时,需要执行的回滚或清理逻辑。 // log: 任务执行的上下文。 // executeErr: 从 Execute 方法返回的原始错误。 OnFailure(executeErr error) TaskDeviceIDResolver } // TaskDeviceIDResolver 定义了从任务配置中解析设备ID的方法 type TaskDeviceIDResolver interface { // ResolveDeviceIDs 从任务配置中解析并返回所有关联的设备ID列表 // 返回值: uint数组,每个字符串代表一个设备ID ResolveDeviceIDs() ([]uint, error) } // TaskFactory 是一个工厂接口,用于根据任务执行日志创建任务实例。 type TaskFactory interface { // Production 根据指定的任务执行日志创建一个任务实例。 Production(claimedLog *models.TaskExecutionLog) Task }