后台任务
- 顾名思义,可以在返回响应后运行后台任务
- 这对于需要在请求后执行特定的操作很有用,且客户端并不需要在接收响应之前等待该操作完成
常见的栗子
- 发送电子邮件通知,由于连接到电子邮件服务器并发送电子邮件往往会比较“缓慢”(几秒钟),因此可以立即返回响应并在后台发送电子邮件通知
- 假设您到一个必须经过缓慢处理的文件,可以先返回“已接受”(HTTP 202)响应并在后台处理它
实际栗子
创建后台任务要用到的函数
- 创建一个作为后台任务运行的函数,就是一个普通函数
- 可以加 async 也可以不加,FastAPI 将会正确处理它
import time
def write_notification(email: str, message: str = ""):
# 1、模拟和邮件服务器建立连接
time.sleep(3)
with open("text.txt", mode="w") as f:
# 2、模拟发送邮件
content = f"message is {message}"
f.write(content)
print(content)
添加后台任务
#!usr/bin/en