什麼是持久任務?

Durable Task 是 Microsoft 實現的持久執行,這是一種產業層面的做法,透過自動持續執行進度,使普通程式碼具備容錯能力。 它是一個用來建立容錯工作流程和編排的框架,就像一般程式碼一樣。 你不必管理複雜的重試邏輯、狀態機或訊息佇列,而是將商業邏輯寫成直接的函式,而 Durable Task 則幫你處理狀態持久化、自動恢復與分散式協調。

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

本文其餘部分將說明 Durable Task 的定位、它支援的語言與主機模型,以及它的結構,讓你能決定如何用它打造容錯的應用程式。

持久任務包含內容

持久性任務包括:

關鍵耐用任務的使用案例

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

  • 長運行程序:Durable Task 能管理長時間運行的程序的狀態與進度,即使有中斷或錯誤。 範例包括訂單處理、資料管線、機器學習模型訓練及長期模擬。
  • 平行與扇出/扇入情境:Durable Task 能協調多位工人在不同機器上並行執行的工作,並彙整結果。 例如影像處理、映射縮減工作及 ETL 工作流程。
  • 微服務與 API 協調:Durable Task 能協調分散式服務、API 及具有複雜控制流程與錯誤處理的機器間的工作。 Durable Task 也支援使用 saga 模式的分散式交易,每個步驟都有補償邏輯,若後續步驟失敗會自動執行。
  • 業務流程自動化:Durable Task 能自動化複雜且確定性的業務流程,這些流程涉及多步驟、依賴關係、人力介入及長期錯誤處理。 例如供應鏈管理、文件審查、客戶入職及身份驗證。
  • 基礎設施自動化:Durable Task 能管理基礎設施配置、配置與部署,並處理複雜的相依性與錯誤處理。 例如雲端資源管理與 CI/CD 管線。
  • 多代理協調:Durable Task 能協調多個 AI 代理的工作,確保任務長期可靠遵循,並有效使用複雜多步驟 AI 流程的代幣。 例如用於深度研究、程式設計及客戶支援的 AI 代理。

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

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

Durable Task 支援多種程式語言,涵蓋兩種主機模式:Azure Functions(透過 Durable Functions 擴充套件)及自架(透過獨立的 Durable Task SDK 支援)。 Azure Functions 主機模式提供完全管理、無伺服器的計算環境,並內建擴展與編排功能;而自架模式則支援在任何計算平台上執行持久應用程式,例如 Azure 容器應用程式、Azure Kubernetes Service,Azure App 服務,或者虛擬機。

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

備註

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

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

耐用任務架構:SDK 與狀態儲存後端

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

Durable Task SDK

你可以使用 Durable Task SDK 來撰寫應用程式碼中的編排、活動和實體。 它內部處理持久執行的機制——重播編排器功能、管理本地執行上下文,並與狀態儲存後端通訊。 Durable Task 在支援的語言及兩種主機模式中提供多種 SDK 選項:Azure Functions 與自架主機。

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

狀態儲存後端

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

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

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

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

額外的持久工作資源

研究出版品

Microsoft 與 Microsoft Research 合作開發 Durable Task。 因此,團隊產出研究論文與文物,包括:

影片概觀

以下影片將介紹 Durable Functions 的優點:

下一步