feat: add generation job cancel and retry queue

This commit is contained in:
2026-04-19 18:45:34 +08:00
parent 6fb128955f
commit b89ca96e4b
18 changed files with 756 additions and 51 deletions

View File

@@ -40,6 +40,7 @@ from app.services.generation_jobs import (
get_user_generation_ops_summary,
get_user_provider_analytics,
list_story_generation_jobs,
request_generation_job_cancel,
)
from app.services.memory_service import build_enhanced_memory_context
from app.services.provider_router import (
@@ -88,6 +89,32 @@ async def get_generation_job(
return await get_generation_job_detail(db, job_id=job_id, user_id=user.id)
@router.post(
"/generations/jobs/{job_id}/cancel",
response_model=GenerationJobSummaryResponse,
)
async def cancel_generation_job(
job_id: str,
user: User = Depends(require_user),
db: AsyncSession = Depends(get_db),
):
"""Request cancellation for one queued/running generation job."""
return await request_generation_job_cancel(db, job_id=job_id, user_id=user.id)
@router.post(
"/generations/jobs/{job_id}/retry",
response_model=GenerationJobSummaryResponse,
)
async def retry_generation_job(
job_id: str,
user: User = Depends(require_user),
db: AsyncSession = Depends(get_db),
):
"""Queue one new generation job from a failed/canceled terminal job."""
return await story_service.retry_generation_job_service(job_id, user.id, db)
@router.get(
"/generations/ops-summary",
response_model=GenerationOpsSummaryResponse,