效能優化 中階
非同步處理模式:訊息佇列與背景任務
請說明後端非同步處理的常見模式與使用場景。
為何需要非同步
某些操作耗時(發 Email、生成報表、影片轉碼),同步執行會讓 API 響應慢,甚至逾時。
訊息佇列(Message Queue)
將任務放入佇列(如 RabbitMQ、Kafka、Redis Queue),由 Worker 非同步消費。
優點:解耦生產者與消費者、可水平擴展 Worker、任務失敗可重試。
背景任務(Background Jobs)
使用 BullMQ(Node.js)、Sidekiq(Ruby)、Celery(Python)等框架排程背景任務。
模式選擇
- 任務需要結果且等待時間短:同步。
- 任務耗時但結果需要通知用戶:非同步 + Webhook 或 WebSocket 回調。
- 任務純粹後台(發 Email、清理資料):背景任務佇列。
冪等性設計
背景任務應設計為冪等(執行多次結果相同),以便安全重試。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
