feat: move unified generation to background worker

This commit is contained in:
2026-04-19 17:29:37 +08:00
parent 5318de670f
commit 6fb128955f
15 changed files with 632 additions and 285 deletions

View File

@@ -67,7 +67,7 @@ docker compose down
docker compose down -v
```
`scripts/demo_smoke.sh` 会检查健康状态、本地登录、统一生成、资产重试、故事列表和 Provider 能力分层。默认跳过 TTS演示前需要验证语音链路时使用 `SMOKE_AUDIO=1`
`scripts/demo_smoke.sh` 会检查健康状态、本地登录、统一生成后台任务、主记录落库、资产重试、故事列表和 Provider 能力分层。默认跳过 TTS演示前需要验证语音链路时使用 `SMOKE_AUDIO=1`
## 手动开发
@@ -128,7 +128,7 @@ npm run build
| GET | `/auth/github/signin` | GitHub OAuth 登录 |
| GET | `/auth/google/signin` | Google OAuth 登录 |
| GET | `/auth/session` | 当前会话 |
| POST | `/api/generations` | 统一生成故事或绘本 |
| POST | `/api/generations` | 提交后台生成任务,立即返回 `generation_job_id` |
| GET | `/api/generations/{story_id}` | 统一读取生成结果 |
| POST | `/api/generations/{story_id}/retry-assets` | 统一重试封面/语音资源 |
| GET | `/api/generations/jobs/{job_id}` | 查询生成任务事件流 |
@@ -165,4 +165,4 @@ npm run build
## 当前取舍
仓库只保留一个 Docker Compose 入口:`docker-compose.yml`。生产部署、HA 演练、旧 Claude 原型和历史归档已从主仓库移除,避免干扰当前求职演示主线。音频缓存默认按 `STORY_AUDIO_CACHE_TTL_DAYS=30` 做后台清理Celery beat 会每日执行一次 prune生成任务默认按 `GENERATION_JOB_STALE_MINUTES=60` 判定卡住,后台会定时自动收敛为失败态,避免故事长期显示“永远在跑”。
仓库只保留一个 Docker Compose 入口:`docker-compose.yml`。生产部署、HA 演练、旧 Claude 原型和历史归档已从主仓库移除,避免干扰当前求职演示主线。统一生成接口现在会先创建后台任务,再由 Celery worker 负责真正的故事/绘本生成;因此本地开发或 Docker 演示时需要保证 `worker` 服务可用。音频缓存默认按 `STORY_AUDIO_CACHE_TTL_DAYS=30` 做后台清理Celery beat 会每日执行一次 prune生成任务默认按 `GENERATION_JOB_STALE_MINUTES=60` 判定卡住,后台会定时自动收敛为失败态,避免故事长期显示“永远在跑”。