FastAPI异步任务:用BackgroundTasks处理耗时操作

在Web开发中,直接在API接口处理耗时操作(如发送邮件、生成报表)会阻塞用户等待,影响体验。FastAPI的`BackgroundTasks`可在请求响应后异步执行这类任务,避免阻塞。 `BackgroundTasks`是FastAPI提供的类,在请求处理完成后自动执行后台任务,不阻塞接口响应。使用仅需三步:导入`BackgroundTasks`,在路由函数声明`bg`参数,通过`bg.add_task()`注册耗时函数及参数。 示例:模拟生成大文件(耗时5秒),用户提交请求后,接口立即返回成功,文件生成在后台异步完成。 关键点:任务在响应后执行,支持位置/关键字参数和顺序执行,适用于I/O密集型任务(如文件读写),不适合CPU密集型;不捕获异常,任务失败需自行处理;应用重启或崩溃会丢失未执行任务,不适合持久化任务。 `BackgroundTasks`轻量易用,通过快速响应提升用户体验,适用于非关键路径的耗时操作。

阅读全文