Harden queue matching and retry behavior
This commit is contained in:
@@ -876,12 +876,15 @@ class DownloadQueue:
|
||||
job = self._find(job_id)
|
||||
if job["status"] == "running":
|
||||
raise ValueError("Running jobs cannot be retried")
|
||||
if job["status"] not in {"failed", "canceled"}:
|
||||
raise ValueError("Only failed or canceled jobs can be retried")
|
||||
job["status"] = "pending"
|
||||
job["exit_code"] = None
|
||||
job["pid"] = None
|
||||
job["started_at"] = None
|
||||
job["finished_at"] = None
|
||||
job["updated_at"] = now_iso()
|
||||
job["cancel_requested"] = False
|
||||
job["log"] = []
|
||||
self._save_job_locked(job)
|
||||
self.wakeup.set()
|
||||
|
||||
Reference in New Issue
Block a user