diff --git a/.runtime.env b/.runtime.env index 6595d0c..ef38cdc 100644 --- a/.runtime.env +++ b/.runtime.env @@ -1,4 +1,4 @@ -MODAL_ENVIRONMENT=test +MODAL_ENVIRONMENT=prod modal_app_name=bowong-ai-video S3_mount_dir=/mntS3 S3_bucket_name=modal-media-cache diff --git a/src/BowongModalFunctions/api.py b/src/BowongModalFunctions/api.py index 23104ee..6215233 100644 --- a/src/BowongModalFunctions/api.py +++ b/src/BowongModalFunctions/api.py @@ -77,6 +77,9 @@ async def scalar(): web_app.include_router(ffmpeg.router) web_app.include_router(cache.router) -web_app.include_router(comfyui.router) + +# todo: prod 展示去掉Comfy相关API接口 +# web_app.include_router(comfyui.router) + web_app.include_router(google.router) web_app.include_router(task.router) diff --git a/src/BowongModalFunctions/config.py b/src/BowongModalFunctions/config.py index 294e3c1..1dfd7d0 100644 --- a/src/BowongModalFunctions/config.py +++ b/src/BowongModalFunctions/config.py @@ -4,7 +4,8 @@ from pydantic_settings import BaseSettings, SettingsConfigDict class WorkerConfig(BaseSettings): video_downloader_concurrency: int = Field(default=10, description="处理缓存任务的并行数") - ffmpeg_worker_concurrency: int = Field(default=100, description="处理视频合成任务的并行数") + ffmpeg_worker_concurrency: int = Field(default=20, description="处理视频任务的并行数") + ffmpeg_slice_worker_concurrency: int = Field(default=200, description="处理视频切割任务的并行数") local_output_mount: str = Field(default="/mnt/outputs", description="本地结果挂载路径前缀") S3_region: str = Field(default='ap-northeast-2', description="S3挂载桶的地域") diff --git a/src/BowongModalFunctions/router/ffmpeg.py b/src/BowongModalFunctions/router/ffmpeg.py index d5de527..8dbaa5d 100644 --- a/src/BowongModalFunctions/router/ffmpeg.py +++ b/src/BowongModalFunctions/router/ffmpeg.py @@ -3,6 +3,7 @@ from typing import Annotated, cast import modal from fastapi import APIRouter, Depends, Header from fastapi.responses import Response +from loguru import logger from starlette import status from ..config import WorkerConfig @@ -60,6 +61,7 @@ sentry_header_schema = { }, ) async def get_task_status(task_id: str, response: Response) -> BaseFFMPEGTaskStatusResponse: + logger.info(f"Get task [{task_id}]") task_info = await ModalUtils.get_modal_task_status(task_id) if task_info.transaction: response.headers["x-trace-id"] = task_info.transaction.x_trace_id diff --git a/src/cluster/app.py b/src/cluster/app.py index 344e116..db1d915 100644 --- a/src/cluster/app.py +++ b/src/cluster/app.py @@ -16,5 +16,8 @@ app = modal.App(config.modal_app_name, app.include(media_app) app.include(ffmpeg_app) app.include(web_app) -app.include(comfyui_v1_app) -app.include(comfyui_v2_app) + +# todo: prod 暂时去掉Comfy相关接口 + +# app.include(comfyui_v1_app) +# app.include(comfyui_v2_app) diff --git a/src/cluster/ffmpeg_app.py b/src/cluster/ffmpeg_app.py index a9174de..26481cc 100644 --- a/src/cluster/ffmpeg_app.py +++ b/src/cluster/ffmpeg_app.py @@ -101,7 +101,7 @@ with ffmpeg_worker_image.imports(): @app.function( timeout=900, cloud="aws", - max_containers=config.ffmpeg_worker_concurrency, + max_containers=config.ffmpeg_slice_worker_concurrency, volumes={ s3_mount: modal.CloudBucketMount( bucket_name=config.S3_bucket_name,