phase 1
This commit is contained in:
@@ -29,14 +29,9 @@ _active_jobs: dict[str, dict] = {}
|
||||
class WorkerServicer(worker_pb2_grpc.WorkerServiceServicer):
|
||||
"""gRPC service implementation for worker operations."""
|
||||
|
||||
def __init__(self, celery_app=None):
|
||||
"""
|
||||
Initialize the servicer.
|
||||
|
||||
Args:
|
||||
celery_app: Optional Celery app for task dispatch
|
||||
"""
|
||||
self.celery_app = celery_app
|
||||
def __init__(self):
|
||||
"""Initialize the servicer."""
|
||||
pass
|
||||
|
||||
def SubmitJob(self, request, context):
|
||||
"""Submit a transcode/trim job to the worker."""
|
||||
@@ -57,28 +52,7 @@ class WorkerServicer(worker_pb2_grpc.WorkerServiceServicer):
|
||||
"error": None,
|
||||
}
|
||||
|
||||
# Dispatch to Celery if available
|
||||
if self.celery_app:
|
||||
from core.jobs.task import run_job
|
||||
|
||||
payload = {
|
||||
"source_key": request.source_path,
|
||||
"output_key": request.output_path,
|
||||
"preset": preset,
|
||||
"trim_start": request.trim_start
|
||||
if request.HasField("trim_start")
|
||||
else None,
|
||||
"trim_end": request.trim_end
|
||||
if request.HasField("trim_end")
|
||||
else None,
|
||||
}
|
||||
|
||||
task = run_job.delay(
|
||||
job_type="transcode",
|
||||
job_id=job_id,
|
||||
payload=payload,
|
||||
)
|
||||
_active_jobs[job_id]["celery_task_id"] = task.id
|
||||
# TODO: dispatch via executor (local/lambda/gcp/grpc)
|
||||
|
||||
return worker_pb2.JobResponse(
|
||||
job_id=job_id,
|
||||
@@ -155,12 +129,6 @@ class WorkerServicer(worker_pb2_grpc.WorkerServiceServicer):
|
||||
if job_id in _active_jobs:
|
||||
_active_jobs[job_id]["status"] = "cancelled"
|
||||
|
||||
# Revoke Celery task if available
|
||||
if self.celery_app:
|
||||
task_id = _active_jobs[job_id].get("celery_task_id")
|
||||
if task_id:
|
||||
self.celery_app.control.revoke(task_id, terminate=True)
|
||||
|
||||
return worker_pb2.CancelResponse(
|
||||
job_id=job_id,
|
||||
cancelled=True,
|
||||
@@ -290,13 +258,12 @@ def update_job_progress(
|
||||
logger.warning(f"Failed to update job {job_id} in DB: {e}")
|
||||
|
||||
|
||||
def serve(port: int = None, celery_app=None) -> grpc.Server:
|
||||
def serve(port: int = None) -> grpc.Server:
|
||||
"""
|
||||
Start the gRPC server.
|
||||
|
||||
Args:
|
||||
port: Port to listen on (defaults to GRPC_PORT env var)
|
||||
celery_app: Optional Celery app for task dispatch
|
||||
|
||||
Returns:
|
||||
The running gRPC server
|
||||
@@ -306,7 +273,7 @@ def serve(port: int = None, celery_app=None) -> grpc.Server:
|
||||
|
||||
server = grpc.server(futures.ThreadPoolExecutor(max_workers=GRPC_MAX_WORKERS))
|
||||
worker_pb2_grpc.add_WorkerServiceServicer_to_server(
|
||||
WorkerServicer(celery_app=celery_app),
|
||||
WorkerServicer(),
|
||||
server,
|
||||
)
|
||||
server.add_insecure_port(f"[::]:{port}")
|
||||
|
||||
Reference in New Issue
Block a user