FastAPI異步任務:用BackgroundTasks處理耗時操作

在Web開發中,直接在API接口處理耗時操作(如發送郵件、生成報表)會阻塞用戶等待,影響體驗。FastAPI的`BackgroundTasks`可在請求響應後異步執行這類任務,避免阻塞。 `BackgroundTasks`是FastAPI提供的類,在請求處理完成後自動執行後臺任務,不阻塞接口響應。使用僅需三步:導入`BackgroundTasks`,在路由函數聲明`bg`參數,通過`bg.add_task()`註冊耗時函數及參數。 示例:模擬生成大文件(耗時5秒),用戶提交請求後,接口立即返回成功,文件生成在後臺異步完成。 關鍵點:任務在響應後執行,支持位置/關鍵字參數和順序執行,適用於I/O密集型任務(如文件讀寫),不適合CPU密集型;不捕獲異常,任務失敗需自行處理;應用重啓或崩潰會丟失未執行任務,不適合持久化任務。 `BackgroundTasks`輕量易用,通過快速響應提升用戶體驗,適用於非關鍵路徑的耗時操作。

閱讀全文