Decouple API from ML imports: use send_task() by name instead of importing tasks
This commit is contained in:
@@ -5,8 +5,6 @@ from sqlalchemy import select
|
||||
from ..models.database import get_session
|
||||
from ..models.tables import Job, Video, JobStatus
|
||||
from ..models.schemas import JobOut, JobListOut, ProcessResponse
|
||||
from ..tasks.process import process_video
|
||||
from ..tasks.generate import generate_audio
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@@ -18,8 +18,7 @@ from ..models.schemas import (
|
||||
)
|
||||
from ..services.video_utils import get_video_duration
|
||||
from ..config import settings
|
||||
from ..tasks.process import process_video
|
||||
from ..tasks.generate import generate_audio
|
||||
from ..tasks.celery_app import celery_app
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -123,7 +122,9 @@ async def start_processing(video_id: int, session: AsyncSession = Depends(get_se
|
||||
video.status = VideoStatus.queued.value
|
||||
await session.commit()
|
||||
|
||||
process_video.delay(video_id=video_id, job_id=job.id)
|
||||
celery_app.send_task(
|
||||
"app.tasks.process.process_video", kwargs=dict(video_id=video_id, job_id=job.id)
|
||||
)
|
||||
|
||||
return ProcessResponse(job_id=job.id, message="Processing started")
|
||||
|
||||
@@ -213,6 +214,9 @@ async def start_generation(video_id: int, session: AsyncSession = Depends(get_se
|
||||
video.status = VideoStatus.generating.value
|
||||
await session.commit()
|
||||
|
||||
generate_audio.delay(video_id=video_id, job_id=job.id)
|
||||
celery_app.send_task(
|
||||
"app.tasks.generate.generate_audio",
|
||||
kwargs=dict(video_id=video_id, job_id=job.id),
|
||||
)
|
||||
|
||||
return ProcessResponse(job_id=job.id, message="Audio generation started")
|
||||
|
||||
Reference in New Issue
Block a user