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