前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >FastAPI 学习之路(三十九)后台任务

FastAPI 学习之路(三十九)后台任务

作者头像
雷子
发布2021-09-17 11:20:09
8740
发布2021-09-17 11:20:09
举报
文章被收录于专栏:雷子说测试开发

前言

上一篇我们分享了FastAPI 学习之路(三十八)对开发接口进行测试,本次我们的分享的是后台任务。

正文

我们在实际的开发中,都会遇到,我们要执行的一些任务很耗时,但是呢,对于前端呢,没必要进行等待。比如发送邮件,读取文件。我们在fastapi如何实现呢。

其实很简单,fastapi已经给我们封装好一个现成的模块,我们直接调用使用即可,非常方便。我们举一个简单例子演示下

代码语言:javascript
复制
from fastapi import FastAPI,BackgroundTasks
import time
app = FastAPI(docs_url="/openapi",
              redoc_url="/apidoc")

def write_notification(email: str, message=""):
    time.sleep(200)
    with open("log.txt", mode="w") as email_file:
        content = f"name {email}: {message}"
        email_file.write(content)
@app.post("/sendtxt/")
async def sendtxt(email: str, background_tasks: BackgroundTasks):
    background_tasks.add_task(write_notification, email, message="不关注")
    return {"message": "在后台读写"}

我们可以去测试下

我们的接口处理完成,但是后台任务还需要等待200s后才能执行完毕。所以我们不必等着任务全部执行完毕再返回,针对特别耗时的任务必须放在后台执行,不能占用前端的进程,不然会影响用户体验和接口返回的。

后记

发现问题,解决问题。遇到问题,慢慢解决问题即可。

欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档