什麼是持久任務?

持久任務是 Microsoft 的持久執行框架,專門用於構建容錯的工作流程和編排,並支持以普通程式碼的形式實現。 你不必管理複雜的重試邏輯、狀態機或訊息佇列,而是將業務邏輯寫成直接的函式——Durable Task 幫你處理狀態持久化、自動恢復和分散式協調。

持久任務工作流程可持續數小時、數天甚至數月,且在任何崩潰、重啟或重新部署後,都能可靠地從最後完成的步驟繼續。 常見的應用場景包括分散式交易、多代理 AI 協調、資料處理流程及基礎設施管理。

持久任務涵蓋:

備註

持久執行 是一種產業通用的方法,透過自動持續執行程式碼的進度,使普通程式碼具備容錯能力。 Durable Task 是 Microsoft 對持久執行的實作。

關鍵耐用任務的使用案例

當您的應用程式需要跨分散式服務進行可靠且長時間的工作流程協調時,請使用持久任務。 常見情況包括:

  • 長時間運行的流程:Durable Task 能管理運行時間較長的流程的狀態和進度,即使面臨中斷或錯誤也可以輕鬆應對。 範例包括訂單處理、資料管線、機器學習模型訓練及長期模擬。
  • 平行與扇出/扇入情境:長期工作可協調分散到多部不同機器上、以平行方式執行之多個背景工作者的工作,然後再將結果彙總回來。 例如影像處理、映射縮減工作及 ETL 工作流程。
  • 微服務與 API 協調:Durable Task 能協調分散式服務、API 及具有複雜控制流程與錯誤處理的機器間的工作。 Durable Task 也支援使用 saga 模式實作分散式交易,每個步驟都有補償邏輯,當後續步驟失敗時自動執行。
  • 業務流程自動化:Durable Task 能自動化複雜且確定性的業務流程,這些流程涉及多步驟、依賴性、人機介入及長時間的錯誤處理。 例如供應鏈管理、文件審查、客戶入職及身份驗證。
  • 基礎設施自動化:Durable Task 能管理基礎設施配置、配置與部署,並處理複雜的相依性與錯誤處理。 例如雲端資源管理與 CI/CD 管線。
  • 多 Agent 流程協調:長期工作能協調由多個 AI Agent 執行的工作,確保長期可靠地完成工作,並有效率地對複雜、多步驟的 AI 流程使用權杖。 例如用於深度研究、程式設計及客戶支援的 AI 代理。

這些情境的共同點是,工作過於複雜、運行時間過長或分散式,無法用臨時程式碼可靠管理。 Durable Task 提供底層保證——持久性、容錯性與有狀態協調——讓你能將這些工作表達成直接的程式碼。

支援語言與持久任務主機模型

Durable Task 支援多種程式語言,涵蓋兩種主機模式:Azure Functions(透過 Durable Functions 擴充功能)以及 self-hosted(透過獨立的 Durable Task SDK 支援)。 Azure Functions 主機模型提供完全管理的無伺服器運算環境,並內建擴展與編排功能;而 自架模型則允許你在任何選擇的運算平台上運行耐用應用程式,例如 Azure Container Apps,Azure Kubernetes Service, Azure App Service, or virtual machines.

語言 Azure Functions Self-hosted
.NET (C#/F#)
JavaScript/TypeScript
Python
JAVA
PowerShell

備註

Go 也是一個由社群支持的開源 SDK,適用於自架情境,但目前仍處於實驗階段,尚未建議用於生產環境。

關於如何在Azure Functions與自架之間選擇,請參見 選擇你的主機模式

架構元件

Durable Task 有兩大主要層:一個是你用在應用程式碼裡的 SDK ,另一個是管理狀態的 狀態儲存後端

Durable Task SDK

Durable Task SDK 是您在應用程式程式碼中,用來撰寫協調流程、活動與實體的工具。 它內部處理持久執行的機制——重播編排器功能、管理本地執行上下文,以及與狀態儲存後端通訊。 Durable Task 提供多種 SDK 選項,適用於前述不同語言與主機模式。

關於如何在這些選項中做出選擇,請參閱 「選擇您的主機模式」。

狀態儲存後端

狀態儲存後端負責持續維護編排狀態、維護執行歷史,並協調計算實例間分散式擴展。

推薦的狀態儲存選項是 Durable Task Scheduler——一個專為耐用任務工作負載打造且高度優化的全託管Azure服務。 它同時支援 Durable Functions 與獨立的 Durable Task SDK,並提供最豐富的功能組合,且無需管理儲存基礎設施。

另外,Durable Functions 支援多種自備(BYO)儲存選項。 這些系統讓你能更好地控制狀態的存放位置,但需要你自己配置和管理底層基礎設施。 BYO 儲存後端目前僅支援 Durable Functions。

欲了解更多儲存選項資訊,請參閱 儲存服務提供者

額外耐用任務資源

研究出版品

Durable Task 是與 Microsoft Research 合作開發的。 因此,團隊積極產出研究論文與成果,包括:

影片概觀

以下影片強調Azure Durable Functions的好處:

下一步