美文网首页
fastapi里的background实现逻辑

fastapi里的background实现逻辑

作者: clever哲思 | 来源:发表于2022-07-22 13:58 被阅读0次

    Fastapi框架里自带了处理后台任务的功能, 文档在https://fastapi.tiangolo.com/zh/tutorial/background-tasks/?h=back

    好奇它的实现方式, 于是看了下源代码, 记录一下, fastapi是封装了starlette, 所以这部分逻辑也在starlette的源代码里

    • 在starlette的response.py里


      image.png
    • Response类的__call__方法, 会调用self.background
      self.background是一个BackgroundTasks
      这个类有一个add_task方法, 就是官方文档里的把后台函数添加到BackgroundTasks里的

    • 然后, 这个__call__方法循环取出每一个task

      image.png
    • 最后在这里真正的用心的线程来跑后台任务
    • 用的是anyio来起的线程


      image.png

    相关文章

      网友评论

          本文标题:fastapi里的background实现逻辑

          本文链接:https://www.haomeiwen.com/subject/xhmmirtx.html