gpt4 book ai didi

python - ASGI 'lifespan' 协议(protocol)似乎不受支持

转载 作者:行者123 更新时间:2023-12-03 20:02:55 25 4
gpt4 key购买 nike

我有一个在 fastapi 和 aiofiles 上运行的异步代码
我正在尝试从 .json 文件加载并保存我的信息,但每次我关闭程序时,它只保存 dict 的键并向我显示“ASGI 'lifespan' 协议(protocol)似乎不受支持”按摩
这是我的开启/关闭部分:

@app.on_event("startup")
async def startup_event():
global beers
try:
async with aiofiles.open("data.json", mode='r+', json=True) as file:
beers = await file.read()
except:
beers = {}


@app.on_event("shutdown")
async def on_exit_app():
async with aiofiles.open("data.json", "w+") as outfile:
await outfile.write(beers)
任何想法问题出在哪里?

最佳答案

这 99% 意味着 on_event("shutdown") 中的某些内容函数会引发服务器 Uncaught Error (FastAPI/Starlette),并且应用程序崩溃,而不是正确结束。这导致 uvicorn 认为服务器不支持 ASGI 协议(protocol)的生命周期部分。
如果你运行 uvicorn带附加选项 --lifespan on ,将显示错误,您可以对其进行调试。
Starlette bug report .

关于python - ASGI 'lifespan' 协议(protocol)似乎不受支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64512286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com