FastAPI作为Windows服务

FastAPI作为Windows服务

发布于2021-03-03 18:19     

   实测可用
   https://www.pythonheidong.com/blog/article/873967/c7d16fdb3501240ca8e2/

我试图将FastAPI作为Windows服务运行。找不到任何文档或文章将Uvicorn作为Windows服务运行。我也尝试使用NSSM,但是Windows服务停止了。


解决方案


我设法使用NSSM将带有uvicorn的FastAPI作为Windows服务运行。

我必须以编程方式部署uvicorn,基本上是直接从您的Python脚本运行uvicorn,然后使用NSSM创建并安装自定义服务。

这是一个基于FastAPI的示例的小示例,但是您无需使用uvicorn main:app --reload命令行运行它,而是uvicorn.run(app, **config)使用自己的配置来添加。

from fastapi import FastAPI
import uvicorn

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}

if __name__ == "__main__":
    uvicorn.run("main:app", host="127.0.0.1", port=5000, log_level="info")

然后,您可以使用标准命令将其与NSSM一起安装nssm install

nssm.exe install "FastAPIWindowsService" "C:\Scripts\FastAPIWindowsService\venv\Scripts\python.exe" "C:\Scripts\FastAPIWindowsService\src\main.py"

相应地更改服务名称,python.exe的路径以及脚本的路径。安装后,您的服务应显示在Windows服务管理器中。

希望这会有所帮助,并为您服务!

上一篇:Process and Thread States


下一篇:学习c++第九记(高精度加法)