Browse Source

修复高优先级任务完成后,没有降级到 5 的问题,这样就会导致反反复复的下载

Signed-off-by: allan716 <[email protected]>
allan716 3 years ago
parent
commit
af4ab88965
2 changed files with 7 additions and 1 deletions
  1. 3 0
      internal/pkg/task_queue/get.go
  2. 4 1
      internal/pkg/task_queue/task_queue.go

+ 3 - 0
internal/pkg/task_queue/get.go

@@ -74,6 +74,9 @@ func (t *TaskQueue) GetOneWaitingJob() (bool, task_queue.OneJob, error) {
 				// 默认是 12h, A.After(B) : A > B == true
 				// 默认是 12h, A.After(B) : A > B == true
 				(time.Time)(tOneJob.UpdateTime).Add(time.Duration(t.settings.AdvancedSettings.TaskQueue.OneSubDownloadInterval)*time.Hour).After(time.Now()) == false && tOneJob.DownloadTimes > 0) {
 				(time.Time)(tOneJob.UpdateTime).Add(time.Duration(t.settings.AdvancedSettings.TaskQueue.OneSubDownloadInterval)*time.Hour).After(time.Now()) == false && tOneJob.DownloadTimes > 0) {
 				// 找到就返回
 				// 找到就返回
+				t.log.Debugln("tOneJob.UpdateTime", (time.Time)(tOneJob.UpdateTime).String())
+				t.log.Debugln("tOneJob.UpdateTime", (time.Time)(tOneJob.UpdateTime).Add(time.Duration(t.settings.AdvancedSettings.TaskQueue.OneSubDownloadInterval)*time.Hour).String())
+				t.log.Debugln("tOneJob.UpdateTime is ", (time.Time)(tOneJob.UpdateTime).Add(time.Duration(t.settings.AdvancedSettings.TaskQueue.OneSubDownloadInterval)*time.Hour).After(time.Now()))
 				found = true
 				found = true
 				return true
 				return true
 			}
 			}

+ 4 - 1
internal/pkg/task_queue/task_queue.go

@@ -231,7 +231,10 @@ func (t *TaskQueue) AutoDetectUpdateJobStatus(oneJob task_queue.OneJob, inErr er
 		oneJob.ErrorInfo = inErr.Error()
 		oneJob.ErrorInfo = inErr.Error()
 		oneJob.DownloadTimes += 1
 		oneJob.DownloadTimes += 1
 	}
 	}
-
+	// 只要是进入完成标记流程的任务,如果优先级还是很高,那么就需要重置到默认优先级上
+	if oneJob.TaskPriority < DefaultTaskPriorityLevel {
+		oneJob.TaskPriority = DefaultTaskPriorityLevel
+	}
 	// 这里不要用错了,要用无锁的,不然会阻塞
 	// 这里不要用错了,要用无锁的,不然会阻塞
 	bok, err := t.update(oneJob)
 	bok, err := t.update(oneJob)
 	if err != nil {
 	if err != nil {