FastAPI中我们可以使用BackgroundTasks
创建后台任务,后台任务在单独的线程中运行,使用后台任务我们可以避免阻塞HTTP请求的处理线程,对于那些执行较慢的代码逻辑,我们应该将其定义为后台任务。
下面例子中我们创建了一个后台任务。
from time import sleep
from fastapi import FastAPI, BackgroundTasks
app = FastAPI()
def demo_background_task():
for i in range(3):
print('Background task running...')
sleep(1)
@app.get('/foo')
async def foo(tasks: BackgroundTasks):
tasks.add_task(demo_background_task)
return {'message': 'success'}
代码中,我们注入了一个BackgroundTasks
对象并调用它的add_task()
方法来注册后台任务。