changes to task scheduling and readability change on downloads view
This commit is contained in:
@@ -207,6 +207,41 @@ async def reset_orphaned_downloads():
|
||||
return jsonify({"error": str(e)}), 500
|
||||
|
||||
|
||||
@bp.route("/requeue-stale", methods=["POST"])
|
||||
async def requeue_stale_downloads():
|
||||
"""Re-queue Celery tasks for downloads stuck in 'queued' status.
|
||||
|
||||
Downloads can get stuck in 'queued' database status if the Celery task
|
||||
was lost (e.g., sent to wrong Redis DB, Redis restart, etc.).
|
||||
This endpoint re-sends the Celery tasks for those jobs.
|
||||
"""
|
||||
from app.tasks.maintenance import requeue_stale_jobs, _requeue_all_queued_jobs_async
|
||||
|
||||
data = await request.get_json() or {}
|
||||
threshold_minutes = data.get("threshold_minutes", 0) # 0 = re-queue ALL queued jobs
|
||||
|
||||
try:
|
||||
if threshold_minutes == 0:
|
||||
# Re-queue all queued jobs immediately (synchronous for immediate feedback)
|
||||
result = await _requeue_all_queued_jobs_async()
|
||||
current_app.logger.info(f"Manual re-queue of all queued jobs: {result}")
|
||||
return jsonify({
|
||||
"message": f"Re-queued {result['requeued_count']} queued jobs",
|
||||
"requeued_count": result['requeued_count'],
|
||||
})
|
||||
else:
|
||||
# Queue the task for threshold-based re-queue
|
||||
task = requeue_stale_jobs.delay(threshold_minutes)
|
||||
return jsonify({
|
||||
"message": "Stale job re-queue queued",
|
||||
"task_id": task.id,
|
||||
"threshold_minutes": threshold_minutes,
|
||||
}), 202
|
||||
except Exception as e:
|
||||
current_app.logger.error(f"Failed to re-queue stale jobs: {e}")
|
||||
return jsonify({"error": str(e)}), 500
|
||||
|
||||
|
||||
@bp.route("/stats", methods=["GET"])
|
||||
async def get_stats():
|
||||
"""Get download statistics."""
|
||||
|
||||
Reference in New Issue
Block a user