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

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

閱讀全文
Nginx動靜分離:讓你的網站加載更快更穩

Nginx動靜分離是將靜態資源(圖片、CSS、JS等)與動態資源(PHP、API等)分開處理,Nginx專注靜態資源快速返回,後端服務器處理動態請求,可提升頁面加載速度、減輕後端壓力、增強擴展性(靜態資源可上CDN,動態請求可負載均衡)。實現核心是通過Nginx的`location`指令區分請求:靜態資源(如`.jpg`、`.js`)用`root`指令指定路徑直接返回;動態請求(如`.php`)通過`fastcgi_pass`等轉發後端(如PHP-FPM)。實戰中,需在Nginx配置文件`server`塊內,用`~*`匹配靜態後綴並設路徑,用`~`匹配動態請求並轉發後端,驗證無誤後重啓Nginx即可生效,優化網站性能。

閱讀全文