我正在尝试将 FastAPI 作为 Windows 服务运行。找不到任何文档或任何文章将 Uvicorn 作为 Window 服务运行。我也尝试使用 NSSM,但我的 Windows 服务停止了。
问问题
3529 次
1 回答
9
我设法使用 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 服务管理器中。
希望这对您有所帮助,并为您工作!
于 2021-01-29T14:19:10.003 回答