你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。

持久任务 SDK 概述

Durable Task SDK 是可移植的开源库,用于使用普通代码生成持久业务流程、活动和实体。 它们适用于任何计算平台-Azure 容器应用、Kubernetes 或 VM。 每个 SDK 都连接到 Durable Task Scheduler 作为托管的后台。

需要使用持久任务 SDK 时:

  • 编排能够在进程重启和基础结构故障中保持运行的多步骤工作流。
  • 并行扇出工作并以可靠方式聚合结果。
  • 等待外部事件 (人工审批、Webhook、计时器),而无需消耗计算。
  • 在任何计算平台上运行,而不会锁定到Azure Functions。

小窍门

不确定是使用持久任务 SDK 还是持久函数? 请参阅 “选择业务流程框架”。 有关 Durable Task 生态系统的更广泛概述,请参阅 什么是 Durable Task?。

可用的持久任务 SDK

下表汇总了可用的 Durable Task SDK 及其包,以及查找源代码和示例的位置。

语言 Packages 地位 来源 示例
.NET Microsoft.DurableTask.Worker.AzureManaged
Microsoft.DurableTask.Client.AzureManaged
GA durabletask-dotnet .NET 示例
Python durabletask-azuremanaged GA durabletask-python Python 示例
爪哇岛 durabletask-client
durabletask-azure-managed
GA durabletask-java Java示例
JavaScript/TypeScript @microsoft/durabletask-js
@microsoft/durabletask-js-azuremanaged
预览 durabletask-js JS 示例
Go github.com/microsoft/durabletask-go Beta durabletask-go Go 示例

安装

每个 SDK 都提供一个用于运行编排、活动和实体的 工作进程,以及一个用于调度和管理实例的 客户端。 根据语言的不同,这些组件会分别随附在单独的软件包中,或随附在一个软件包或模块中。 安装适用于所使用语言的软件包。

dotnet add package Microsoft.DurableTask.Worker.AzureManaged
dotnet add package Microsoft.DurableTask.Client.AzureManaged

.NET SDK 适用于任何.NET托管模型:ASP.NET Core、控制台应用或辅助角色服务。 它支持通过源生成器实现的类型安全的编排和活动定义,并与依赖注入集成。

开始

所有 SDK 都遵循相同的模式:

  1. 安装 适用于您的编程语言的SDK包或模块。 请参阅 安装。

  2. 使用 Docker 启动用于本地开发的模拟器:

    docker run --name dtsemulator -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest
    
  3. 在 应用程序代码中定义业务流程和活动。

  4. 启动工作线程 来处理编排和活动工作项。

  5. 使用客户端 以计划新的编排实例并查询其状态。

有关使用工作代码的演练,请参阅 快速入门:使用 Durable Task SDK 创建应用。

功能对比

下表显示了每个 SDK 支持的功能。

功能 .NET Python Java JavaScript Go(beta 版本)
业务流程 ✅ ✅ ✅ ✅ ✅
活动 ✅ ✅ ✅ ✅ ✅
子编排 ✅ ✅ ✅ ✅ ✅
持久计时器 ✅ ✅ ✅ ✅ ✅
外部事件 ✅ ✅ ✅ ✅ ✅
持久实体 ✅ ✅ ✅ ✅ ✅
重试策略 ✅ ✅ ✅ ✅ ✅
Continue-as-new ✅ ✅ ✅ ✅ ✅
暂停/恢复 ✅ ✅ ✅ ✅ ✅

后续步骤