精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

FastAPI 背景任務(wù)全解析:異步執(zhí)行長(zhǎng)任務(wù)的正確姿勢(shì)!

開發(fā)
這篇文章,帶你徹底掌握 FastAPI 的后臺(tái)任務(wù)機(jī)制(Background Tasks):它不是 async,不是 Celery,但輕巧高效,正是你項(xiàng)目中最實(shí)用的異步利器之一!

你是否遇到這種場(chǎng)景:

  • 注冊(cè)接口響應(yīng)太慢,只因要發(fā)送郵件?
  • 每次寫日志都阻塞了響應(yīng)返回?
  • 想跑個(gè)后臺(tái)任務(wù),卻不知從哪開始?

這篇文章,帶你徹底掌握 FastAPI 的后臺(tái)任務(wù)機(jī)制(Background Tasks):它不是 async,不是 Celery,但輕巧高效,正是你項(xiàng)目中最實(shí)用的異步利器之一!

什么是 Background Tasks?

Background Tasks 是 FastAPI 提供的一種輕量異步任務(wù)執(zhí)行方式。

它的核心思路:

  • 在 HTTP 請(qǐng)求響應(yīng)返回之后,自動(dòng)執(zhí)行一段你注冊(cè)好的函數(shù)
  • 適用于不需要立即返回結(jié)果、也不強(qiáng)依賴成功率的任務(wù)

例如:

  • 發(fā)郵件(用戶不需要等發(fā)完郵件才得到響應(yīng))
  • 寫日志(用戶不需要日志寫完才看到結(jié)果)
  • 異步清理操作、緩存刷新、埋點(diǎn)統(tǒng)計(jì)等

如何使用 BackgroundTasks?

基本用法:

from fastapi import FastAPI, BackgroundTasks

app = FastAPI()

def write_log(message: str):
    with open("log.txt", "a") as f:
        f.write(f"{message}\n")

@app.post("/log")
async def log_operation(background_tasks: BackgroundTasks):
    background_tasks.add_task(write_log, "用戶訪問了 /log 接口")
    return {"message": "操作已記錄(異步執(zhí)行)"}

參數(shù)說(shuō)明:

參數(shù)

說(shuō)明

BackgroundTasks

FastAPI 自動(dòng)注入的后臺(tái)任務(wù)對(duì)象

add_task(func, *args, **kwargs)

注冊(cè)后臺(tái)執(zhí)行的函數(shù)和參數(shù)

你的函數(shù)(非 async)

必須是普通函數(shù)(同步),不能是 async 函數(shù)!

為什么函數(shù)不能是 async 的?

因?yàn)?FastAPI 的 BackgroundTasks 是基于 Starlette 的同步回調(diào)機(jī)制,它在響應(yīng)后通過(guò)事件循環(huán)注冊(cè)任務(wù),并同步執(zhí)行你傳入的函數(shù)。

如果你寫成 async def,它不會(huì)被 await,也不會(huì)進(jìn)入事件循環(huán),最終無(wú)法運(yùn)行。

如果我一定要運(yùn)行 async 函數(shù)怎么辦?

可以使用 Python 的 asyncio.create_task() 方法間接執(zhí)行:

import asyncio

asyncdefasync_job():
    print("異步任務(wù)開始")
    await asyncio.sleep(2)
    print("異步任務(wù)結(jié)束")

defwrapper_async_job():
    asyncio.create_task(async_job())  # 間接運(yùn)行 async 函數(shù)

@app.get("/run")
asyncdefrun(background_tasks: BackgroundTasks):
    background_tasks.add_task(wrapper_async_job)
    return {"msg": "異步任務(wù)已觸發(fā)"}

這樣就能兼顧 async def 與 BackgroundTasks!

真實(shí)案例:注冊(cè)后異步發(fā)送郵件

文件結(jié)構(gòu)如下:

project/
├── main.py
└── tasks/
    └── email.py

tasks/email.py:

import time

def send_welcome_email(email: str):
    time.sleep(3)  # 模擬耗時(shí)任務(wù)
    print(f"?? 歡迎郵件已發(fā)送到 {email}")

main.py:

from fastapi import FastAPI, BackgroundTasks
from tasks.email import send_welcome_email

app = FastAPI()

@app.post("/register")
async def register(email: str, background_tasks: BackgroundTasks):
    # 假設(shè)已完成注冊(cè)流程
    background_tasks.add_task(send_welcome_email, email)
    return {"msg": "注冊(cè)成功,歡迎郵件將在后臺(tái)發(fā)送"}

用戶幾乎瞬間得到響應(yīng),而郵件將在后臺(tái)異步執(zhí)行,提升體驗(yàn)。

支持多個(gè)后臺(tái)任務(wù)?

當(dāng)然可以!只需多次調(diào)用 add_task():

background_tasks.add_task(write_log, "用戶注冊(cè)")
background_tasks.add_task(send_welcome_email, email)
background_tasks.add_task(refresh_cache, user_id)

它們會(huì)按順序在響應(yīng)后依次執(zhí)行。

與 Depends 依賴注入結(jié)合使用

你可以在依賴函數(shù)里注入 BackgroundTasks,實(shí)現(xiàn)邏輯更解耦:

def audit(background_tasks: BackgroundTasks):
    background_tasks.add_task(write_log, "訪問審計(jì)")
    return

@app.get("/data")
async def get_data(dep=Depends(audit)):
    return {"msg": "數(shù)據(jù)已獲取"}

更高級(jí)的場(chǎng)景中,你可以把審計(jì)、埋點(diǎn)、通知等邏輯都封裝進(jìn) Depends,主業(yè)務(wù)邏輯保持干凈清晰。

BackgroundTasks 適合什么場(chǎng)景?

適合:

場(chǎng)景

示例

郵件通知

注冊(cè)成功、忘記密碼等

日志記錄

用戶行為埋點(diǎn)、接口訪問日志

文件清理

上傳后刪除舊文件

緩存更新

數(shù)據(jù)變動(dòng)后刷新緩存

不適合:

  • 需要 重試、隊(duì)列控制、任務(wù)狀態(tài)追蹤 的任務(wù)
  • 耗時(shí)非常長(zhǎng)、可能失敗的操作

對(duì)此建議使用 Celery、Dramatiq、APScheduler 等專業(yè)方案。

多任務(wù)并發(fā)支持嗎?

支持,但有限制:

  • 每個(gè)請(qǐng)求的任務(wù)是串行執(zhí)行的,不并發(fā)
  • 如果任務(wù)內(nèi)部使用了 asyncio.create_task(),可以實(shí)現(xiàn)并發(fā)邏輯
  • 要實(shí)現(xiàn)更強(qiáng)大的并發(fā)處理,建議交給專門的任務(wù)系統(tǒng)處理(如 Celery)

與 Celery 的對(duì)比

特性

BackgroundTasks

Celery

部署復(fù)雜度

簡(jiǎn)單,無(wú)需額外組件

依賴 Redis/RabbitMQ

是否異步

?

?

重試機(jī)制

? 無(wú)

? 自動(dòng)重試

任務(wù)隊(duì)列

? 無(wú)

? 內(nèi)置隊(duì)列系統(tǒng)

狀態(tài)追蹤

? 無(wú)

? 支持狀態(tài)與監(jiān)控

適用場(chǎng)景

簡(jiǎn)單后臺(tái)邏輯

復(fù)雜異步任務(wù)

總結(jié)

FastAPI 的 BackgroundTasks 非常適合:

  • 小而輕的異步任務(wù)(如發(fā)郵件、寫日志)
  • 不要求任務(wù)可追蹤、重試的場(chǎng)景
  • 快速開發(fā)原型、簡(jiǎn)潔易用的后端服務(wù)
責(zé)任編輯:趙寧寧 來(lái)源: Ssoul肥魚
相關(guān)推薦

2009-07-28 15:30:34

ASP.NET多線程

2025-06-03 08:15:00

微服務(wù)架構(gòu)異步任務(wù)隊(duì)列

2023-01-03 10:38:04

函數(shù)計(jì)算技術(shù)

2025-05-08 08:00:00

FastAPI開發(fā)異步定時(shí)

2024-08-12 10:13:01

2020-07-02 07:44:27

Spring教程異步

2022-06-02 10:18:24

函數(shù)計(jì)算異步

2024-10-14 13:12:59

2023-07-31 08:05:30

Spring任務(wù)調(diào)度

2025-10-15 02:11:00

2018-01-11 15:31:39

命令Linux關(guān)機(jī)

2011-08-30 10:20:41

Silverlight

2017-02-23 15:37:44

OptionObject容器

2016-05-09 10:41:03

算法分析開發(fā)

2024-04-09 08:04:42

C#結(jié)構(gòu)await

2021-04-19 11:10:45

PythonSQLExcel

2014-04-24 09:49:57

Android測(cè)試異步任務(wù)

2023-11-03 14:32:38

2014-12-02 10:02:21

Android異步任務(wù)

2024-03-06 08:13:33

FutureJDKCallable
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产精品女主播视频| 日韩电影中文 亚洲精品乱码| 一区不卡字幕| 精品国产av 无码一区二区三区| 欧美视频四区| 日韩精品中文字幕在线播放| 香蕉视频网站入口| 老司机av在线免费看| 国产高清亚洲一区| 久久久亚洲网站| 国产性猛交96| 亚洲成人一区在线观看| 国产精品大尺度| 99高清视频有精品视频| 国产一级精品视频| 日韩激情图片| 精品电影一区二区三区| 成年人黄色片视频| 91亚洲天堂| 久久网这里都是精品| 成人欧美一区二区三区黑人| 日韩黄色三级视频| 欧美wwwww| 亚洲精品av在线| 国产又猛又黄的视频| 99久久精品免费观看国产| 26uuu亚洲综合色| 亚洲一区二区三区乱码aⅴ蜜桃女| 九九热视频精品| 波多野结衣在线观看一区二区三区| 欧美久久一区二区| 浮妇高潮喷白浆视频| 黄色网在线免费观看| 99视频超级精品| 国产乱人伦真实精品视频| 在线免费观看毛片| 三区四区不卡| 亚洲精品视频在线播放| 婷婷激情综合五月天| 亚洲欧洲日本韩国| 亚洲主播在线播放| 亚洲国产欧美不卡在线观看| 手机在线不卡av| 国产乱子轮精品视频| 国产精品电影观看| 91精品国产乱码在线观看| 婷婷六月综合| 日韩精品在线播放| www.偷拍.com| 123成人网| 在线一区二区视频| 亚洲 高清 成人 动漫| 怡红院在线播放| 中文字幕五月欧美| 色婷婷精品国产一区二区三区| 日韩一级在线播放| 国产精品正在播放| 成人看片人aa| 亚洲天堂999| 青青草国产成人av片免费| 国产91成人video| 豆国产97在线 | 亚洲| 欧美三级第一页| 久久国产精品久久久久久久久久| 影音先锋男人看片资源| 国产亚洲电影| 亚洲日本成人网| 波多野结衣a v在线| 偷拍精品福利视频导航| 亚洲精品电影网在线观看| 大尺度做爰床戏呻吟舒畅| 天堂av一区| 日韩亚洲欧美高清| 熟妇女人妻丰满少妇中文字幕 | 国精产品一区一区三区有限在线| 精品自拍偷拍视频| 伊人情人综合网| 久久成人精品视频| 麻豆changesxxx国产| 欧美三区在线| 欧美激情a∨在线视频播放 | 亚洲精品成人悠悠色影视| 综合一区中文字幕| 免费a级人成a大片在线观看| 2020国产精品久久精品美国| 久久精品美女| 精品无吗乱吗av国产爱色| 91小视频在线免费看| 久久精品二区| 免费人成在线观看网站| 久久久久亚洲综合| 欧美精品一区二区视频| 久久精品a一级国产免视看成人| jvid福利写真一区二区三区| 97视频热人人精品| 色屁屁草草影院ccyycom| 久久人人超碰精品| 视频一区二区综合| 一色桃子av在线| 欧美日韩色婷婷| 一区二区三区国产免费| 95精品视频| 精品成a人在线观看| wwwwxxxx国产| 亚洲高清影视| 欧美激情视频三区| 精品国产xxx| 精品一区二区三区的国产在线播放 | 丝袜美腿av在线| 色综合一个色综合| 五月激情婷婷在线| 久久99精品久久久久久欧洲站 | 国产成人精品综合久久久久99 | 久久草.com| av资源种子在线观看| 一区二区三区在线视频观看| www一区二区www免费| 亚洲精品aaa| 亚洲精品国产精品国产自| 久久午夜精品视频| 1024精品一区二区三区| 国产乱肥老妇国产一区二 | 美女视频第一区二区三区免费观看网站| 91视频国产精品| 日本护士...精品国| 亚洲欧洲另类国产综合| jizzjizz国产精品喷水| 日韩在线电影| 亚洲欧洲激情在线| 九九热视频精品| 久久精品二区亚洲w码| 国产一区二区精品免费| 日本在线免费中文字幕| 欧美日韩精品在线观看| 日本成人在线免费观看| 欧美在线电影| 欧美在线播放视频| 精品人妻久久久久一区二区三区 | 欧美69视频| 国产成人精品一区二区| 日本韩国在线观看| 亚洲欧美日韩国产成人精品影院| 成年人小视频网站| 精品国产乱子伦一区二区| 久久久精品欧美| 中文精品久久久久人妻不卡| 99精品国产视频| 草草视频在线免费观看| 亚洲精品三区| 永久免费毛片在线播放不卡| 国产情侣自拍av| www.日本不卡| 一卡二卡三卡视频| av综合网址| 欧美精品在线视频观看| 国产精品欧美综合亚洲| 中文字幕免费在线观看视频一区| 久久久久久久久久久福利| 澳门成人av| 欧美国产亚洲精品久久久8v| 亚洲视频在线免费播放| 国产精品美女一区二区| 在线免费观看av的网站| 欧美综合视频| 国产精品美女网站| 成年人在线视频| 欧美日韩一区二区在线| 插我舔内射18免费视频| 欧美日一区二区在线观看| 91欧美精品午夜性色福利在线 | 国产精品尤物视频| 久久精品亚洲精品国产欧美kt∨| 国产裸体舞一区二区三区| 自拍自偷一区二区三区| 国产精品pans私拍| 高清av在线| 欧美日韩一级二级三级| 一本色道久久88| 国产一区二区中文字幕| 蜜桃视频一区二区在线观看| 136福利精品导航| 欧美精品第一页在线播放| 蜜臀久久精品久久久久| 欧美日韩精品中文字幕| 欧美 日韩 成人| 蜜桃精品在线观看| 激情五月五月婷婷| 99这里只有精品视频| 78m国产成人精品视频| 免费a在线观看| 欧美日韩在线亚洲一区蜜芽| 无码人妻精品中文字幕| 国产成人精品一区二| 久久久久久久中文| 欧美一级本道电影免费专区| 91视频国产精品| 欧美xxxhd| 在线视频中文亚洲| 国产后入清纯学生妹| 亚洲精品中文在线影院| 韩国黄色一级片| 国产精品女主播一区二区三区| 欧美激情一区二区三区在线视频 | 国产日本欧美一区| 特级毛片在线| 亚洲黄页网在线观看| 久久精品一二区| 国产精品久久久久三级| 日本天堂在线播放| 日韩精品福利网| 无码人妻aⅴ一区二区三区日本| 久久99国产精品久久99大师| 国产精品视频久| 欧美人与性动交α欧美精品图片| 精品久久国产字幕高潮| 亚洲日本视频在线观看| 国产精品卡一卡二卡三| 少妇献身老头系列| 蜜乳av一区二区| 国产xxxx振车| 日韩精品一区二区三区免费观看| 97超碰人人看人人| 成人av集中营| 国内精品视频一区| 欧美边添边摸边做边爱免费| 亚洲老头同性xxxxx| 国产成人精品一区二区无码呦| 欧美午夜电影在线| 劲爆欧美第一页| 亚洲国产精品成人综合色在线婷婷 | 爱爱免费小视频| 国产成人av一区二区三区在线观看| 成人免费无码av| 亚洲国产专区| 天天想你在线观看完整版电影免费| 免费一区二区| 国产精品永久入口久久久| 在线欧美激情| 国产精品美女www爽爽爽视频| 国产自产自拍视频在线观看| 久久国产精品偷| av在线资源站| 亚洲人成网站色ww在线| 男人天堂av网| 精品国产网站在线观看| 亚洲图片中文字幕| 91久久精品网| 久久精品视频1| 亚洲成人动漫av| 激情综合五月网| 一区二区三区四区精品在线视频| 日本精品在线观看视频| 成人h动漫精品一区二区| 一级做a免费视频| 精品在线一区二区| 欧美精品性生活| 日韩av一级片| 国产情侣av自拍| 三级不卡在线观看| 日韩中文字幕组| 免费看亚洲片| wwwxxx黄色片| 日韩精品乱码免费| 精品久久久久久久免费人妻| 亚洲男女自偷自拍| 成年人小视频网站| 日韩主播视频在线| 在线免费观看视频黄| 免费视频最近日韩| 亚洲午夜激情影院| 国产尤物一区二区| 久久久久亚洲av片无码v| 国产麻豆一精品一av一免费| 午夜av中文字幕| 韩日精品视频一区| 一级片免费在线观看视频| 国产精品一区免费在线观看| 色噜噜狠狠永久免费| 老司机免费视频一区二区 | 波多野结依一区| 97av在线播放| 日韩在线影院| 国产日韩在线亚洲字幕中文| 久久精品一级| 国产v亚洲v天堂无码| 日韩丝袜视频| 欧美一区二区视频在线| 国产欧美日韩精品一区二区免费| 久久综合九九| 欧美理论视频| 又大又硬又爽免费视频| 国产欧美一区二区色老头| 女人另类性混交zo| 麻豆一区二区三| 国偷自产av一区二区三区麻豆| 成人小视频免费在线观看| 国产夫妻性爱视频| 欧美激情一区二区三区全黄| 中文字幕电影av| 天天操天天综合网| 亚洲免费视频二区| 日韩美女一区二区三区四区| 凸凹人妻人人澡人人添| 在线精品高清中文字幕| fc2ppv国产精品久久| 欧美亚洲激情视频| 99国内精品久久久久| 国产精品免费观看高清| 欧美日韩黑人| 日韩欧美精品免费| 另类小说一区二区三区| 亚洲av成人片无码| 国产色产综合产在线视频| 91麻豆免费视频网站| 综合欧美亚洲日本| 日韩精品成人在线| 91精品国产色综合久久ai换脸 | 日本三级视频在线播放| 欧美日韩成人在线播放| 欧美大陆国产| 国产精品日本一区二区| 色综合天天爱| 麻豆tv在线播放| 激情五月婷婷综合网| 亚洲av无码国产精品久久| 亚洲男人的天堂在线aⅴ视频| 黑人精品无码一区二区三区AV| 欧美一级视频精品观看| 成人欧美亚洲| 26uuu另类亚洲欧美日本老年| 懂色av色香蕉一区二区蜜桃| 欧美一区二区视频在线| 一本色道久久综合亚洲精品高清 | 国产白丝一区二区三区| 欧美日韩美女视频| 亚洲精品久久久久久久久久| 在线观看亚洲视频| 色网在线免费观看| 国产精品久久久久久久免费大片 | 国产麻豆精品95视频| 1024手机在线观看你懂的| 欧美日韩另类在线| 日本精品一区二区在线观看| 美女少妇精品视频| 日韩成人免费av| 区一区二区三区中文字幕 | 国产欧美久久久久| 国产一区二区三区久久悠悠色av| www..com.cn蕾丝视频在线观看免费版 | 欧美日韩中文在线| 亚洲黄色在线观看视频| 欧美成人免费全部| 成人在线视频区| 在线国产伦理一区| 蜜臀av一区二区在线观看| 亚洲一级中文字幕| 黑人巨大精品欧美一区二区免费| 免费激情视频网站| 久久久女女女女999久久| 亚洲精选av| 妞干网视频在线观看| 成人一区在线观看| 久久久久久免费观看| 欧美tickling网站挠脚心| 污污的视频在线观看| av成人在线电影| 国产精品地址| 91精产国品一二三| 亚洲激情成人在线| 污污视频在线观看网站| 欧美一区二区影院| 免费欧美视频| 三上悠亚av一区二区三区| 中文字幕日本不卡| a在线观看视频| 欧美精品久久久久久久免费观看| swag国产精品一区二区| 成人免费播放器| 91免费视频观看| 看黄色一级大片| 中文字幕亚洲情99在线| 91精品福利观看| 亚洲精品无码国产| 91麻豆免费观看| 一区二区乱子伦在线播放| 少妇高潮 亚洲精品| 激情久久免费视频| av日韩一区二区三区| 91麻豆精品一区二区三区| 成人黄色免费网| 久久精品国产成人精品| 日韩第一区第二区| 少妇av一区二区三区无码| 久久九九全国免费| 97人人爽人人爽人人爽| 久久久在线免费观看| 国产精品一区高清| 日本亚洲一区二区三区| 婷婷丁香久久五月婷婷| jizz在线观看|