plug task enqueing properly

This commit is contained in:
2026-02-06 10:49:05 -03:00
parent 2cf6c89fbb
commit 013587d108
20 changed files with 413 additions and 356 deletions

View File

@@ -201,7 +201,7 @@ def update_job_progress(
"""
Update job progress (called from worker tasks).
This updates the in-memory state that StreamProgress reads from.
Updates both the in-memory gRPC state and the Django database.
"""
if job_id in _active_jobs:
_active_jobs[job_id].update(
@@ -215,6 +215,36 @@ def update_job_progress(
}
)
# Update Django database
try:
from django.utils import timezone
from mpr.media_assets.models import TranscodeJob
update_fields = ["progress", "current_frame", "current_time", "speed", "status"]
updates = {
"progress": progress,
"current_frame": current_frame,
"current_time": current_time,
"speed": str(speed),
"status": status,
}
if error:
updates["error_message"] = error
update_fields.append("error_message")
if status == "processing":
updates["started_at"] = timezone.now()
update_fields.append("started_at")
elif status in ("completed", "failed"):
updates["completed_at"] = timezone.now()
update_fields.append("completed_at")
TranscodeJob.objects.filter(id=job_id).update(**updates)
except Exception as e:
logger.warning(f"Failed to update job {job_id} in DB: {e}")
def serve(port: int = None, celery_app=None) -> grpc.Server:
"""