mirror of
https://github.com/myronblair/kino-app
synced 2026-07-28 13:33:49 -05:00
Fix retry-all-failed silently no-oping when content already has a queued job
Also lift the artificial 500-row cap on the retry-failed query.
This commit is contained in:
+6
-2
@@ -714,15 +714,19 @@ async def retry_job(job_id: str, user: dict = Depends(require_admin)):
|
|||||||
if job["status"] not in ("failed", "cancelled"):
|
if job["status"] not in ("failed", "cancelled"):
|
||||||
raise HTTPException(status_code=400, detail="Only failed/cancelled jobs can be retried")
|
raise HTTPException(status_code=400, detail="Only failed/cancelled jobs can be retried")
|
||||||
new_job = await _enqueue_transcode(job["movie_id"], job["quality"], triggered_by=job.get("triggered_by", "manual"), content_type=job.get("content_type", "movie"))
|
new_job = await _enqueue_transcode(job["movie_id"], job["quality"], triggered_by=job.get("triggered_by", "manual"), content_type=job.get("content_type", "movie"))
|
||||||
|
if new_job["id"] != job["id"]:
|
||||||
|
await db.transcode_queue.delete_one({"id": job["id"]})
|
||||||
return {"ok": True, "job_id": new_job["id"]}
|
return {"ok": True, "job_id": new_job["id"]}
|
||||||
|
|
||||||
|
|
||||||
@api.post("/transcode/queue/retry-failed")
|
@api.post("/transcode/queue/retry-failed")
|
||||||
async def retry_all_failed(user: dict = Depends(require_admin)):
|
async def retry_all_failed(user: dict = Depends(require_admin)):
|
||||||
jobs = await db.transcode_queue.find({"status": {"$in": ["failed", "cancelled"]}}, {"_id": 0}).to_list(500)
|
jobs = await db.transcode_queue.find({"status": {"$in": ["failed", "cancelled"]}}, {"_id": 0}).to_list(None)
|
||||||
retried = 0
|
retried = 0
|
||||||
for job in jobs:
|
for job in jobs:
|
||||||
await _enqueue_transcode(job["movie_id"], job["quality"], triggered_by=job.get("triggered_by", "manual"), content_type=job.get("content_type", "movie"))
|
new_job = await _enqueue_transcode(job["movie_id"], job["quality"], triggered_by=job.get("triggered_by", "manual"), content_type=job.get("content_type", "movie"))
|
||||||
|
if new_job["id"] != job["id"]:
|
||||||
|
await db.transcode_queue.delete_one({"id": job["id"]})
|
||||||
retried += 1
|
retried += 1
|
||||||
return {"ok": True, "retried": retried}
|
return {"ok": True, "retried": retried}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user