目 录CONTENT

文章目录

在 FastAPI + Uvicorn 的使用:Workers(多进程) 和 reload(热重载)

Administrator
2025-12-10 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

在 FastAPI + Uvicorn 的使用:Workers(多进程) 和 reload(热重载)

在FastAPI开发和Uvicorn程序里,开发环境往往使用reload对代码做热重载,在生产环境使用worker执行多工作进程。FastAPI在0.96.0后支持dev环境热重载功能,是我们在开发代码的时候,可以快速调试代码。

热重载和多worker的互斥

$ pip install fastapi
$ pip install uvicorn

uvicorn的--workers(工作进程数)和--reload(自动重载)是两个常用参数,--workers用于生产环境增加并发,而--reload用于开发环境热重载;二者的核心关系是:互斥且适用场景完全不同!

关键是,在启用--reload时,--workers参数不生效,--workers通常是在不开启重载的情况下用于多进程并发处理,如uvicorn main:app --workers 4: uvicorn main:app --workers 4(启动 4 个 worker 进程)

而--reload在开发时使用,如uvicorn main:app --reload,两者不能一起使用,因为重载模式本身就处理进程管理: uvicorn main:app --reload(开启热重载)

热重载的实现逻辑是「主进程监测文件变化 → 重启子进程」,而多 worker 模式下会有多个子进程,热重载无法保证所有 worker 进程同步重启,易导致进程状态混乱、端口占用、代码加载不一致等问题!

在FastAPI开发环境

在开发环境,务必使用reload!,保证框架同步更新后的代码。 结合程序日志:Uvicorn 开启 --reload(热重载)后,检测到代码文件变化触发重启。 核心触发点:Uvicorn 的热重载监听器(WatchFiles)检测到 reload.py 文件被修改,开始执行重启流程:检测文件变化 → 触发重启 → 关闭旧进程(Shutting down)→ 清理应用资源(Waiting for shutdown)→ 旧进程终止 → 启动新进程 → 加载新代码 → 应用重新启动完成 WatchFiles 模块: Uvicorn 0.23+ 版本默认的文件监测模块,替代了之前的 watchdog,无需额外安装依赖,监测效率更高

2025-12-10 18:00:00.065 | INFO     | logging:callHandlers:1762 - Application startup complete.
source /media/vdb/code/fastapi-demo/.venv/bin/activate
WARNING:  WatchFiles detected changes in 'app/api/api_v1/endpoint/reload/reload.py'. Reloading...
2025-12-10 20:55:59.101 | INFO     | logging:callHandlers:1762 - Shutting down
2025-12-10 20:55:59.206 | INFO     | logging:callHandlers:1762 - Waiting for application shutdown.
2025-12-10 20:55:59.207 | INFO     | logging:callHandlers:1762 - Application shutdown complete.
2025-12-10 20:55:59.207 | INFO     | logging:callHandlers:1762 - Finished server process [11]

谢谢关注收藏

刚刷到的朋友注意啦!点击【关注】锁定宝藏库,从此升职加薪不迷路 ✨



轻量云主机限时优惠

RackNerd

☁ 主机显示特惠:只要80元(3TB流量,1vcpu,50GB硬盘),且多区域IDC机房。 购买地址https://my.racknerd.com/aff.php?aff=14942

CloudCone

CloudCone 特惠轻量云主机购买地址https://app.cloudcone.com/?ref=12332


📢 腾讯云资源限时福利

有云服务器、CDN、对象存储、网络防护等需求的朋友,欢迎联系下方腾讯云官方销售 👇 ✔️ 内部专属折扣,价格更优:

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区