feat: add image upstream deadline
This commit is contained in:
+4
-3
@@ -117,6 +117,7 @@ DJANGO_CACHE_BACKEND=django.core.cache.backends.db.DatabaseCache
|
||||
DJANGO_CACHE_LOCATION=cmhub_cache
|
||||
|
||||
AI_KEY_ENCRYPTION_KEY=base64-fernet-key
|
||||
AI_IMAGE_UPSTREAM_DEADLINE_SECONDS=180
|
||||
|
||||
PAYMENT_CALLBACK_MODE=sdk
|
||||
WECHAT_PAY_NOTIFY_URL=https://cmhub.example.com/api/v1/recharge/callback/wechat
|
||||
@@ -159,7 +160,7 @@ python3.12 manage.py import_ai_models /secure/cmhub/ai_models.json --create-defa
|
||||
要求:
|
||||
|
||||
- `/secure/cmhub/ai_models.json` 不提交到 git。
|
||||
- `AiModel.timeout_seconds` 不能继续依赖默认 `0` 口径上线;图片模型必须按真实耗时设置读取超时。
|
||||
- `AiModel.timeout_seconds` 不能继续依赖默认 `0` 口径上线;图片模型必须按真实耗时设置读取超时,并受 `AI_IMAGE_UPSTREAM_DEADLINE_SECONDS` 硬截止保护。
|
||||
- 运营后台需配置 `PricingRule` 和 `ExchangeRate`,否则生成和充值会因缺规则被拒绝。
|
||||
|
||||
### AI 上游配置故障处理
|
||||
@@ -257,7 +258,7 @@ gunicorn config.wsgi:application \
|
||||
--error-logfile -
|
||||
```
|
||||
|
||||
`--timeout` 必须按真实图片生成耗时校准:`Gunicorn timeout` 应大于 `AiModel.timeout_seconds`,Nginx `proxy_read_timeout` 应大于 Gunicorn timeout,调用方 read timeout 应不小于 Nginx。
|
||||
`--timeout` 必须按真实图片生成耗时校准:生图 Provider 实际读取超时为 `min(AiModel.timeout_seconds 或分辨率默认值, AI_IMAGE_UPSTREAM_DEADLINE_SECONDS)`;`Gunicorn timeout` 应大于这个内层上游硬截止,Nginx `proxy_read_timeout` 应大于 Gunicorn timeout,调用方 read timeout 应不小于 Nginx。
|
||||
|
||||
systemd 单元可分别命名为 `cmhub-web.service` 和 `cmhub-generate.service`。服务的 `WorkingDirectory` 指向 `/www/wwwroot/cmhub`,`ExecStart` 使用上面的两条 Gunicorn 命令,环境变量由项目根目录 `.env` 在 Django settings 中读取。
|
||||
|
||||
@@ -345,7 +346,7 @@ python3.12 manage.py smoke_ai_generation image
|
||||
|
||||
上线前必须记录真实 `image` smoke 的 `elapsed_ms`,并据此回填:
|
||||
|
||||
- 图片 `AiModel.timeout_seconds`
|
||||
- 图片 `AiModel.timeout_seconds` 与 `AI_IMAGE_UPSTREAM_DEADLINE_SECONDS`
|
||||
- Gunicorn 长请求池 `--timeout`
|
||||
- Nginx `/api/v1/generate/` 的 `proxy_read_timeout`
|
||||
- 接入方客户端 read timeout
|
||||
|
||||
Reference in New Issue
Block a user