这个问题已经有答案了:
How to log the return value of a POST method after returning the response?(1个答案)
2天前关闭。
我有一个FastAPI处理函数fast_api_func和另一个函数func_to_be_called,我想从fast_api_func异步触发。我不想等待结果。一旦它被触发,我想从API返回一些响应,以便func_to_be_called在后台运行,直到完成。
大概是这样的:
async def func_to_be_called():
#do some stuff which takes time
@app.post("/fast-api-endpoint")
def fast_api_func(request: dict = Body(...)):
func_to_be_called()
return "Ok"
这里,响应“Ok”应该返回,而不需要等待func_to_be_called函数的执行完成。
我尝试过直接调用它,也使用了JavaScript函数和循环,但无法使其工作。它要么给出await required error,要么同步执行函数,然后返回“Ok”,要么先返回“Ok”,但后台执行不会发生。响应“Ok”应返回,而无需等待func_to_be_called函数的执行完成。
你能建议如何解决这个问题吗?
1条答案
按热度按时间jjjwad0x1#
您可以使用后台任务