Creo una API usando el marco Fastapi y la implementé en Heroku, la función principal de esta API es que tengo que enviar el elemento (método de publicación) como parámetro de consulta cada 10 segundos y creo una ruta para mostrar todos los elementos enviados, pero tengo un problema cuando actualizo página no recibí todos los elementos enviados, por ejemplo, si envío [1, 2, 3, 4, 5, 6, 7, 8, 9] a veces obtengo [1, 3, 4, 5, 7, 9] y a veces obtengo [2, 6, 8], pero en local tengo api funcionando perfectamente.
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 no ejecutará su aplicación como un solo proceso. Dado que mantiene estos datos en la memoria , solo se actualizarán y mantendrán en ese proceso que recibe su solicitud.
Utilice una base de datos o una tienda KV para almacenar sus datos, de modo que se almacenen en una ubicación centralizada con la que todos los procesos puedan comunicarse. Heroku admite postgres administrado y redis que puede usar para cualquiera de estos casos de uso.