Emm*_*Lin 6
感谢您的最后评论,我更好地理解了您的问题。
你真正的问题
所以实际上你的问题是为什么FastAPI
对象被创建了 3 次。
在日志中确实可以看到您有 3 个不同的内存地址0x102b35d50
,,,0x10daadf50
0x1106bfe50
这并不意味着您有 3 个工作人员,只是该FastAPI
对象被创建了 3 次。最后一个是您的 API 将使用的。
为什么会发生
该对象被多次创建,因为:
首先,您运行main.py
所有代码(创建一个FastAPI
对象),然后到达__main__
然后uvicorn
启动main:app
,让它再次进入文件main.py
并构建另一个FastAPI
对象。
最后一个是由您创建的,debug=True
当您将其设置为 False 时,您会少FastAPI
创建一个对象。我不太清楚为什么。
解决方案
解决方案是将 API 定义与 API 的开头分开。
例如,可以创建一个run.py
文件:
import uvicorn
if __name__ == "__main__":
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=False, log_level="debug", debug=True,
workers=1, limit_concurrency=1, limit_max_requests=1)
并启动此文件。
另一种选择是在命令行中启动您的 API:
uvicorn main:app --host=0.0.0.0 --port=8000 --log-level=debug --limit-max-requests=1 --limit-concurrency=1
您可以在此处找到所有命令行参数
更多推荐
实例,但我,FastAPI,uvicorn,run
发布评论