路径前缀规范;Jupyter + VSCode 混合调试方式;python的async异步任务;Docker挂载目录(开发调试强推)
1.路径前缀规范
/api 作为路径前缀是可行的,但略显宽泛,一般更推荐 更语义化、更便于后期扩展的路由设计。
选用以下路径更为清晰,sam3作为模型名前缀,video作为处理对象分类,detect作为模型的动作,条理清晰。
/sam3/video/detect
不能死板地使用中文的阅读顺序比如detect/video,要根据具体业务逻辑进行命名。
2.Jupyter + VSCode 混合调试方式
昨天调试自己代码时,出现很多问题,今天针对VSCode调试系统了解一下.
调试时出现异步问题,python的async,需要await video_detect。
async def定义的函数不会立即执行,而是返回一个协程对象;只有 await 才会真正运行它。
(在async异步函数中await → 会让出控制权),两个同时使用video_detect函数时,先进的先执行到await,然后让出video_detect函数的控制权给第二个使用者,去执行await中的await video_file.read()代码,
使第二个使用者能提前进入到video_detect函数。第一个使用者执行完await video_file.read(),也会等待第二个使用者让出video_detect函数。
总结一句话
async函数会一直运行,直到遇到 await 让出执行权,等待任务完成后再继续执行。多个 async 函数在事件循环中可以并发调度运行。
3.python的async异步任务
await等待一个异步结果完成,需要用到异步任务主要是一下几种情况
✔ 你写的是 接口服务
✔ 同时有大量请求
✔ 请求内部包含 网络/文件/DB 等等待操作
✔ 你希望单机支持更高并发
4.Docker挂载目录(开发调试强推)
Docker部署的环境,将本地代码映射到容器内,这样改代码不用rebuild。
需要注意的使VSCode要用容器运行时的Python解释器
| 场景 | 更新方式 | 是否推荐 |
|---|---|---|
| 临时调试 | docker直接拷贝代码 | ⚠️ 临时,重启就丢失 |
| 本地开发 | 挂载代码 + 热更新 | ✅ 最方便 |
| 生产部署 | 重建镜像 | ✅ 稳定可靠 |
浙公网安备 33010602011771号