增加celery任务队列,任务持久化(服务重启不丢)、支持多 Worker 水平扩展、失败自动重试
This commit is contained in:
+3
-10
@@ -1,5 +1,5 @@
|
||||
# api/routes.py
|
||||
from fastapi import APIRouter, UploadFile, File, HTTPException, BackgroundTasks, Request, Depends
|
||||
from fastapi import APIRouter, UploadFile, File, HTTPException, Request, Depends
|
||||
from typing import Optional, Dict, Any, List
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
@@ -10,8 +10,8 @@ from models.schemas import ProcessingStatus, create_task_info
|
||||
from utils.file_handler import FileHandler
|
||||
from services.storage_integration_rustfs import StorageIntegrationService
|
||||
from services.redis_task_manager import redis_task_manager
|
||||
from services.processing_service import processing_service
|
||||
from services.task_query_service import TaskQueryService
|
||||
from celery_tasks import process_stp_task
|
||||
from database.database import get_db_session
|
||||
from utils.logger import get_logger
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
@@ -54,7 +54,6 @@ async def health():
|
||||
|
||||
@router.post("/upload")
|
||||
async def upload_stp(
|
||||
background_tasks: BackgroundTasks,
|
||||
file: UploadFile = File(...),
|
||||
material: Optional[str] = "ABS",
|
||||
db_session: AsyncSession = Depends(get_db_session),
|
||||
@@ -104,13 +103,7 @@ async def upload_stp(
|
||||
|
||||
# 后台处理走统一编排服务,避免请求会话在后台失效
|
||||
process_params = {"material": material}
|
||||
background_tasks.add_task(
|
||||
processing_service.process_file_with_storage,
|
||||
task_id,
|
||||
file_path,
|
||||
stp_file.id,
|
||||
process_params,
|
||||
)
|
||||
process_stp_task.delay(task_id, str(file_path), stp_file.id, process_params)
|
||||
logger.info(f"[UPLOAD] 后台处理已调度: task_id={task_id}")
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user