Fix: aria2 RPC retry / return NoT_FOUND error while listing not existed path

This commit is contained in:
HFO4
2020-02-10 10:33:39 +08:00
parent 7a6c84a115
commit f235ad1def
11 changed files with 125 additions and 16 deletions

View File

@@ -23,6 +23,7 @@ type Monitor struct {
Interval time.Duration
notifier chan StatusEvent
retried int
}
// StatusEvent 状态改变事件
@@ -68,11 +69,20 @@ func (monitor *Monitor) Loop() {
func (monitor *Monitor) Update() bool {
status, err := Instance.Status(monitor.Task)
if err != nil {
monitor.retried++
util.Log().Warning("无法获取下载任务[%s]的状态,%s", monitor.Task.GID, err)
monitor.setErrorStatus(err)
monitor.RemoveTempFolder()
return true
// 十次重试后认定为任务失败
if monitor.retried > 10 {
util.Log().Warning("无法获取下载任务[%s]的状态,超过最大重试次数限制,%s", monitor.Task.GID, err)
monitor.setErrorStatus(err)
monitor.RemoveTempFolder()
return true
}
return false
}
monitor.retried = 0
// 磁力链下载需要跟随
if len(status.FollowedBy) > 0 {