github.com/qjfoidnh/BaiduPCS-Go@v0.0.0-20231011165705-caa18a3765f3/pcsutil/taskframework/task_unit.go (about) 1 package taskframework 2 3 import "time" 4 5 type ( 6 TaskUnit interface { 7 SetTaskInfo(info *TaskInfo) 8 // 执行任务 9 Run() (result *TaskUnitRunResult) 10 // 重试任务执行的方法 11 // 当达到最大重试次数, 执行失败 12 OnRetry(lastRunResult *TaskUnitRunResult) 13 // 每次执行成功执行的方法 14 OnSuccess(lastRunResult *TaskUnitRunResult) 15 // 每次执行失败执行的方法 16 OnFailed(lastRunResult *TaskUnitRunResult) 17 // 每次执行结束执行的方法, 不管成功失败 18 OnComplete(lastRunResult *TaskUnitRunResult) 19 // 重试等待的时间 20 RetryWait() time.Duration 21 } 22 23 // 任务单元执行结果 24 TaskUnitRunResult struct { 25 Succeed bool // 是否执行成功 26 NeedRetry bool // 是否需要重试 27 NeedNextdindex bool // 是否需要切换到备用下载链接 28 29 // 以下是额外的信息 30 Err error // 错误信息 31 ResultCode int // 结果代码 32 ResultMessage string // 结果描述 33 Extra interface{} // 额外的信息 34 } 35 ) 36 37 var ( 38 // TaskUnitRunResultSuccess 任务执行成功 39 TaskUnitRunResultSuccess = &TaskUnitRunResult{} 40 )