¿Parece que las tareas asíncronas en segundo plano de fastapi bloquean otras solicitudes? pero parece que mi problema es un poco diferente
from fastapi import BackgroundTasks, FastAPI app = FastAPI() db = Database() async def task(data): otherdata = await db.fetch("some sql") await db.execute("insert otherdata sql",otherdata) # this blocks other api requests when excute'time too long. @app.post("/profile") async def profile(data: Data, background_tasks: BackgroundTasks): background_tasks.add_task(task, data) return {}Pero cuando no se define asíncrono, no bloqueará otras solicitudes de API. ( https://fastapi.tiangolo.com/tutorial/background-tasks/ )
from fastapi import BackgroundTasks, FastAPI from time import sleep app = FastAPI() db = Database() def task(data): for x in range(10): sleep(1) print(x) @app.post("/profile") async def profile(data: Data, background_tasks: BackgroundTasks): background_tasks.add_task(task, data) return {}--> Mi problema es cuando ejecuto sql (tiempo de ejecución largo), debo estar usando async/await pero usando una tarea en segundo plano de API rápida, bloqueará otra solicitud de API. Entonces, ¿hay alguna forma en que defina que mi tarea es sincronizar y ejecutar sql mediante async/await?