- 商品三视图:有真实商品主图时走 image_edit,以主图为参考锁包装一致(品牌字/配色/外形/Logo) - 人物:据「某一版立绘」异步生成配套三视图(image_edit,worker 内跑),立绘/三视图各存版本可切换 - 基础资产出图改异步(run_base_asset_task / generate_triview_task),Web 层不被慢出图占住 - 前端:演员库浏览/新增、人物详情(立绘+三视图+版本切换/下载/查看大图)、按 busyKey 的单卡并发 loading(genBusy,替代全局 genBusyKey,各按钮互不阻塞) - dev:本地连云端 MySQL 复用连接(CONN_MAX_AGE/health check/connect_timeout),仅 development 生效 - 含 projects 测试补充 tsc + py_compile + 26 后端测试通过。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
from airshelf.celery import app
|
|
|
|
|
|
@app.task(bind=True, max_retries=3)
|
|
def submit_ai_task(self, task_id: str) -> str:
|
|
return task_id
|
|
|
|
|
|
@app.task(bind=True, max_retries=5)
|
|
def poll_ai_task(self, task_id: str) -> str:
|
|
return task_id
|
|
|
|
|
|
@app.task(bind=True, max_retries=0)
|
|
def generate_standalone_image_task(self, task_id: str) -> str:
|
|
"""单张独立图的慢活(ARK 出图 ~30s)在 worker 内跑,Web 层不被占住。
|
|
幂等且失败自退费(见 run_standalone_image_task),故 max_retries=0,不向上抛重试。"""
|
|
from apps.ai.services import run_standalone_image_task
|
|
|
|
run_standalone_image_task(task_id=task_id)
|
|
return task_id
|
|
|
|
|
|
@app.task(bind=True, max_retries=0)
|
|
def generate_base_asset_task(self, task_id: str) -> str:
|
|
"""基础资产(商品/人物/场景立绘)的慢出图在 worker 内跑,Web 层不被占住。
|
|
幂等且失败自退费(见 run_base_asset_task),故 max_retries=0,不向上抛重试。"""
|
|
from apps.ai.services import run_base_asset_task
|
|
|
|
run_base_asset_task(task_id=task_id)
|
|
return task_id
|
|
|
|
|
|
@app.task(bind=True, max_retries=0)
|
|
def generate_triview_task(self, task_id: str) -> str:
|
|
"""三视图(image_edit 以立绘为参考,慢)在 worker 内跑,Web 层不被占住。
|
|
幂等且失败自退费(见 run_triview_task),故 max_retries=0,不向上抛重试。"""
|
|
from apps.ai.services import run_triview_task
|
|
|
|
run_triview_task(task_id=task_id)
|
|
return task_id
|
|
|