github.com/fzfile/BaiduPCS-Go@v0.0.0-20200606205115-4408961cf336/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 28 // 以下是额外的信息 29 Err error // 错误信息 30 ResultCode int // 结果代码 31 ResultMessage string // 结果描述 32 Extra interface{} // 额外的信息 33 } 34 ) 35 36 var ( 37 // TaskUnitRunResultSuccess 任务执行成功 38 TaskUnitRunResultSuccess = &TaskUnitRunResult{} 39 )