积分冻结释放
This commit is contained in:
@@ -11,6 +11,12 @@ from app.services.module_async_recovery_service import (
|
||||
register_module_step_task,
|
||||
)
|
||||
from app.services.module_generation_log_service import log_module_error, log_module_event_file
|
||||
from app.services.llm_billing import (
|
||||
LlmBillingContext,
|
||||
log_celery_dispatch_failure,
|
||||
log_celery_dispatch_start,
|
||||
log_celery_dispatch_success,
|
||||
)
|
||||
from app.services.module_generation_v2.config import VIDEO_PROMPT_OPTIMIZE, ModuleGenerationV2Config
|
||||
from app.tasks.celery_app import celery_app
|
||||
from app.tasks.module_generation_v2_tasks import start_video_prompt_optimize_v2
|
||||
@@ -38,12 +44,14 @@ async def dispatch_video_prompt_v2(
|
||||
config: ModuleGenerationV2Config,
|
||||
project_id: str,
|
||||
step_id: str,
|
||||
billing_context: LlmBillingContext,
|
||||
) -> VideoPromptDispatchResult:
|
||||
"""注册并投递 V2 视频提词任务。
|
||||
|
||||
Redis 注册成功但 Celery 直投失败时,由周期恢复任务补投;Celery 成功但
|
||||
Redis 注册失败时任务仍可正常执行。只有两个通道都失败时由 API 补偿落库为失败。
|
||||
"""
|
||||
log_celery_dispatch_start(billing_context)
|
||||
registry_error: Exception | None = None
|
||||
try:
|
||||
await register_module_step_task(
|
||||
@@ -91,6 +99,7 @@ async def dispatch_video_prompt_v2(
|
||||
celery_error=str(celery_error) if celery_error else None,
|
||||
)
|
||||
if result.celery_success:
|
||||
log_celery_dispatch_success(billing_context)
|
||||
log_module_event_file(
|
||||
module=config.module,
|
||||
event_type=ModuleEventTypeEnum.V2_VIDEO_PROMPT_DISPATCHED.value,
|
||||
@@ -102,4 +111,9 @@ async def dispatch_video_prompt_v2(
|
||||
"redis_registry_available": result.registry_success,
|
||||
},
|
||||
)
|
||||
if not result.celery_success:
|
||||
log_celery_dispatch_failure(
|
||||
billing_context,
|
||||
error=result.celery_error or "Celery direct dispatch failed; waiting for registry recovery",
|
||||
)
|
||||
return result
|
||||
|
||||
Reference in New Issue
Block a user