效能優化 中階

非同步處理模式:訊息佇列與背景任務

AI 練習作答

請說明後端非同步處理的常見模式與使用場景。

為何需要非同步

某些操作耗時(發 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 評分