24 lines
		
	
	
		
			1016 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			1016 B
		
	
	
	
		
			Go
		
	
	
	
	
	
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)
 | 
						|
}
 | 
						|
 | 
						|
// TaskFactory 是一个工厂接口,用于根据任务执行日志创建任务实例。
 | 
						|
type TaskFactory interface {
 | 
						|
	// Production 根据指定的任务执行日志创建一个任务实例。
 | 
						|
	Production(claimedLog *models.TaskExecutionLog) Task
 | 
						|
}
 |