不好:FastApi 响应问题

Bad: FastApi response problems

我使用 fastapi 框架创建 api 并且我已经部署在 heroku 上,这个 api 的主要功能是我必须发送(post 方法)每 10 秒将元素作为查询参数,我创建路径以显示所有已发送的元素,但是当我刷新页面时遇到问题我没有收到所有元素,例如,如果我发送 [1, 2, 3, 4, 5, 6, 7 , 8, 9] 有时我得到 [1, 3, 4, 5, 7, 9] 有时我得到 [2, 6, 8], 但在本地我有 api 运行 完美。

from fastapi import FastAPI

app = FastAPI()

hr = []


@app.get("/")
async def api_status():
    return {"message": "api running"}


@app.get("/hr")
async def show_hr_values():
    if hr:
        return hr
    return {"message": "hr empty"}


@app.post("/hr")
async def add_hr_value(hr_value: int):
    hr.append(hr_value)
    return {"message": f"hr = {hr_value} added"}

Heroku 不会 运行 您的应用程序只是一个进程。由于您将此数据 保存在内存中 ,它只会在收到您的请求的进程中更新和保存。

改为使用数据库或 KV 存储来存储您的数据,以便将其存储在所有进程都可以与之通信的集中位置。 Heroku 支持托管的 postgres 和 redis,您可以将它们用于这些用例。