(二十八)从开发启动切换到常驻服务
--reload 用于开发时观察代码修改。常驻服务读取确定的代码和依赖,进程结束后由运行环境重新启动。先完成数据库迁移和模型发布,再启动工作进程。
# catalog_project:一次迁移完成后,启动两个查询工作进程。
uv run catalog migrate
uv run uvicorn cataloghub.web:create_app --factory --host 127.0.0.1 --port 8781 --workers 2
# model_project:先确认完整模型可读,再启动两个预测工作进程。
uv run model-lab verify v1
uv run uvicorn modeldelivery.web:create_app --factory --host 127.0.0.1 --port 8782 --workers 2
--factory 让 Uvicorn 调用工厂函数构造应用。每个模型工作进程各加载一份权重和数组,所以增加进程也会增加内存占用;应按实际请求量和测得的资源选择数量。SQLite 写入仍由独立采集命令完成,查询路由只读数据。
容器里监听 0.0.0.0,让端口映射能访问容器服务;本机直接运行时监听 127.0.0.1,再由反向代理作为外部入口。部署时记录启动命令、数据路径、代码提交和模型版本,后面才能准确重开同一份服务。