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.database import get_session
|
||||||
from ..models.tables import Job, Video, JobStatus
|
from ..models.tables import Job, Video, JobStatus
|
||||||
from ..models.schemas import JobOut, JobListOut, ProcessResponse
|
from ..models.schemas import JobOut, JobListOut, ProcessResponse
|
||||||
from ..tasks.process import process_video
|
|
||||||
from ..tasks.generate import generate_audio
|
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
|||||||
@@ -18,8 +18,7 @@ from ..models.schemas import (
|
|||||||
)
|
)
|
||||||
from ..services.video_utils import get_video_duration
|
from ..services.video_utils import get_video_duration
|
||||||
from ..config import settings
|
from ..config import settings
|
||||||
from ..tasks.process import process_video
|
from ..tasks.celery_app import celery_app
|
||||||
from ..tasks.generate import generate_audio
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
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
|
video.status = VideoStatus.queued.value
|
||||||
await session.commit()
|
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")
|
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
|
video.status = VideoStatus.generating.value
|
||||||
await session.commit()
|
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")
|
return ProcessResponse(job_id=job.id, message="Audio generation started")
|
||||||
|
|||||||
Reference in New Issue
Block a user