Spaces:
Sleeping
Sleeping
Chandima Prabhath
commited on
Commit
·
15909e3
1
Parent(s):
7cdd60d
Enhance job initialization and progress tracking; update .gitignore to exclude cache directories
Browse files- .gitignore +3 -0
- video_encoder/api/main.py +2 -1
- video_encoder/worker/tasks.py +8 -0
- video_encoder/worker/worker.py +1 -1
.gitignore
CHANGED
|
@@ -1 +1,4 @@
|
|
| 1 |
.env
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
.env
|
| 2 |
+
video_encoder/__pycache__
|
| 3 |
+
video_encoder/worker/__pycache__
|
| 4 |
+
video_encoder/api/__pycache__
|
video_encoder/api/main.py
CHANGED
|
@@ -9,7 +9,7 @@ from datetime import datetime
|
|
| 9 |
from rq import Queue
|
| 10 |
from redis import from_url
|
| 11 |
from ..config import EncodingConfig, RedisConfig
|
| 12 |
-
from video_encoder.worker.tasks import encode_video_task
|
| 13 |
import logging
|
| 14 |
|
| 15 |
logger = logging.getLogger(__name__)
|
|
@@ -39,6 +39,7 @@ async def upload_video(file: UploadFile):
|
|
| 39 |
f.write(await file.read())
|
| 40 |
|
| 41 |
logger.info(f"Enqueuing job {job_id} for file {file.filename}")
|
|
|
|
| 42 |
q.enqueue(encode_video_task, job_id, input_path)
|
| 43 |
|
| 44 |
return JSONResponse(
|
|
|
|
| 9 |
from rq import Queue
|
| 10 |
from redis import from_url
|
| 11 |
from ..config import EncodingConfig, RedisConfig
|
| 12 |
+
from video_encoder.worker.tasks import encode_video_task, init_job
|
| 13 |
import logging
|
| 14 |
|
| 15 |
logger = logging.getLogger(__name__)
|
|
|
|
| 39 |
f.write(await file.read())
|
| 40 |
|
| 41 |
logger.info(f"Enqueuing job {job_id} for file {file.filename}")
|
| 42 |
+
init_job(job_id)
|
| 43 |
q.enqueue(encode_video_task, job_id, input_path)
|
| 44 |
|
| 45 |
return JSONResponse(
|
video_encoder/worker/tasks.py
CHANGED
|
@@ -8,11 +8,19 @@ from pathlib import Path
|
|
| 8 |
from typing import Optional
|
| 9 |
from .ffmpeg import FFmpegEncoder
|
| 10 |
from ..config import EncodingConfig
|
|
|
|
| 11 |
|
| 12 |
logger = logging.getLogger(__name__)
|
| 13 |
|
| 14 |
q = Queue(connection=RedisConfig.get_connection(), default_timeout=3600)
|
| 15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
def update_job_progress(job_id: str, progress: float):
|
| 17 |
logger.info(f"Updating progress for job {job_id} to {progress}")
|
| 18 |
RedisConfig.get_connection().hset(f"job:{job_id}", "progress", progress)
|
|
|
|
| 8 |
from typing import Optional
|
| 9 |
from .ffmpeg import FFmpegEncoder
|
| 10 |
from ..config import EncodingConfig
|
| 11 |
+
from datetime import datetime
|
| 12 |
|
| 13 |
logger = logging.getLogger(__name__)
|
| 14 |
|
| 15 |
q = Queue(connection=RedisConfig.get_connection(), default_timeout=3600)
|
| 16 |
|
| 17 |
+
def init_job(job_id: str):
|
| 18 |
+
RedisConfig.get_connection().hset(f"job:{job_id}", mapping={
|
| 19 |
+
"progress": 0.0,
|
| 20 |
+
"status": "queued",
|
| 21 |
+
"created_at": datetime.now().isoformat()
|
| 22 |
+
})
|
| 23 |
+
|
| 24 |
def update_job_progress(job_id: str, progress: float):
|
| 25 |
logger.info(f"Updating progress for job {job_id} to {progress}")
|
| 26 |
RedisConfig.get_connection().hset(f"job:{job_id}", "progress", progress)
|
video_encoder/worker/worker.py
CHANGED
|
@@ -2,5 +2,5 @@ from rq import Worker
|
|
| 2 |
from video_encoder.config import RedisConfig
|
| 3 |
|
| 4 |
if __name__ == "__main__":
|
| 5 |
-
worker = Worker([RedisConfig.QUEUE_NAME], connection=RedisConfig.get_connection())
|
| 6 |
worker.work()
|
|
|
|
| 2 |
from video_encoder.config import RedisConfig
|
| 3 |
|
| 4 |
if __name__ == "__main__":
|
| 5 |
+
worker = Worker([RedisConfig.QUEUE_NAME], connection=RedisConfig.get_connection(), default_result_ttl=3600)
|
| 6 |
worker.work()
|