Microsoft.Azure.DurableTask.Core 3.0.0
前缀预留
dotnet add package Microsoft.Azure.DurableTask.Core --version 3.0.0
NuGet\Install-Package Microsoft.Azure.DurableTask.Core -Version 3.0.0
<PackageReference Include="Microsoft.Azure.DurableTask.Core" Version="3.0.0" />
paket add Microsoft.Azure.DurableTask.Core --version 3.0.0
#r "nuget: Microsoft.Azure.DurableTask.Core, 3.0.0"
// Install Microsoft.Azure.DurableTask.Core as a Cake Addin #addin nuget:?package=Microsoft.Azure.DurableTask.Core&version=3.0.0 // Install Microsoft.Azure.DurableTask.Core as a Cake Tool #tool nuget:?package=Microsoft.Azure.DurableTask.Core&version=3.0.0
持久性任务框架
持久性任务框架 (DTFx) 是一个库,使开发人员能够使用简单的 async/await 编码结构在 C# 中编写持续运行的长流程(称为 编排)。它在微软的各个团队中被广泛使用来可靠地编排持续运行的基础设施、监控和管理操作。通过简单地向更多的工作机器添加,编排可以线性扩展。该框架还用于为 Azure Functions 的无服务器 Durable Functions 扩展 提供动力。
通过开源此项目,我们希望给社区提供一个成本效益极高的替代方案,来处理重型工作流程系统。我们还希望围绕这个简单而极其强大的框架构建一个提供者和活动的生态系统。
本工程采纳了微软开源行为准则。
更多信息请参阅行为准则常见问题或通过[email protected]联系,以提出更多问题或意见。
支持的持久存储
从v2.x版本开始,Durable Task框架支持一个可扩展的后端持久存储集合。每个存储库都可以通过不同的NuGet包启用。所有包的最新版本都已签名,可在nuget.org下载。
包 | 最新版本 | 详情 | 开发状态 |
---|---|---|---|
DurableTask.ServiceBus | 在Service Bus队列中存储编排消息和运行时状态,状态跟踪存储在Azure存储中。该提供者的优势在于其成熟度和事务一致性。然而,它已不再是微软的活跃开发项目。 | 生产就绪但未积极维护 | |
DurableTask.AzureStorage | 所有编排状态均存储在Azure存储队列、表和Blob中。该提供者的优势是最小化的服务依赖、高效率和丰富的功能集。这是Durable Functions唯一的后端。 | 生产就绪且积极维护 | |
DurableTask.AzureServiceFabric | 所有编排状态均存储在Azure Service Fabric Reliable Collections中。如果您将应用程序托管在Azure Service Fabric中且不想承担外部依赖来存储状态,这是一个理想的选择。 | 生产就绪且积极维护 | |
DurableTask.Netherite | 由微软研究院开发的一个超高性能的后端,其中状态存储在Azure Event Hubs和Azure Page Blobs中,使用微软研究院的FASTER数据库技术。👉 GitHub仓库 | 生产就绪且积极维护 | |
DurableTask.SqlServer | 所有编排状态存储在配置了索引表和存储过程的Microsoft SQL Server或Azure SQL数据库中,以便直接交互。👉 GitHub仓库 | 生产就绪且积极维护 | |
DurableTask.Emulator | 这是一个仅用于测试的内存存储。它不是为任何生产工作负载设计和推荐的。 | 未积极维护 |
Durable Task框架的核心编程模型包含在DurableTask.Core包中,该包也在积极开发中。
了解更多
您可以在几个地方了解更多关于此框架的信息。请注意,其中一些是外部资源,不由微软拥有
- 此仓库的wiki,其中包含关于框架及其用法更详细的信息。
- 以下博客系列包含有用信息:https://abhikmitra.github.io/blog/durable-task/
- 这里有一些有用的示例:https://github.com/kaushiksk/durabletask-samples
- 您可以在使用Durable Task框架构建工作流中观看与一些原始维护者一起的视频。
- 在某些情况下,Azure Durable Functions文档对了解底层框架非常有帮助,尽管不一定适用于所有内容。
开发说明
要运行单元测试,您必须指定用于测试的 Service Bus 连接字符串。您可以在测试项目中的 ServiceBusConnectionString app.config 值中这么做,或者通过定义 DurableTaskTestServiceBusConnectionString 环境变量来实现。环境变量的好处是不需要临时更改源代码。
单元测试还需要 Azure 存储模拟器,请确保已安装并正在运行。
注意:虽然可以在测试中实际使用 Azure 存储账户,但并不推荐这么做,因为很多测试会因 409 冲突错误而失败。这是因为测试会删除和快速重新创建相同的存储表,且 Azure 存储在这些条件下表现不佳。如果您确实想更改 Azure 存储连接字符串,可以在测试项目中通过 StorageConnectionString app.config 值,或通过定义 DurableTaskTestStorageConnectionString 环境变量来实现。
产品 | 版本 兼容的和额外的计算目标框架版本。 |
---|---|
.NET | net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
.NET Core | netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。 |
.NET 标准库 | netstandard2.0 兼容。 netstandard2.1 已计算。 |
.NET 框架 | net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。 |
MonoAndroid | monoandroid 已计算。 |
MonoMac | monomac 已计算。 |
MonoTouch | monotouch 已计算。 |
Tizen | tizen40 已计算。 tizen60 已计算。 |
Xamarin.iOS | xamarinios 已计算。 |
Xamarin.Mac | xamarinmac 已计算。 |
Xamarin.TVOS | xamarintvos 已计算。 |
Xamarin.WatchOS | xamarinwatchos 已计算。 |
-
.NETStandard 2.0
- Castle.Core (>= 5.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.1)
- Newtonsoft.Json (>= 13.0.1)
- System.Diagnostics.DiagnosticSource (>= 6.0.1)
- System.Reactive.Compatibility (>= 4.4.1)
- System.Reactive.Core (>= 4.4.1)
NuGet 包 (25)
显示对 Microsoft.Azure.DurableTask.Core 依赖的 Top 5 NuGet 包
包 | 下载 |
---|---|
Microsoft.Azure.DurableTask.AzureStorage 适用于Durable Task Framework的Azure存储提供程序扩展。 |
|
Microsoft.Azure.WebJobs.Extensions.DurableTask Azure WebJobs SDK为Durable Task Framework扩展。 |
|
Microsoft.Azure.DurableTask.ApplicationInsights 该包提供了一个基于C#的持久性任务框架,用于编写长时间运行的应用程序。 |
|
Microsoft.DurableTask.Abstractions Durable Task Framework的抽象。 |
|
Microsoft.DurableTask.SqlServer Durable Task Framework的Microsoft SQL服务提供程序。 |
GitHub仓库 (4)
显示依赖于Microsoft.Azure.DurableTask.Core的前4个最热门的GitHub仓库
仓库 | 星星 |
---|---|
Azure/azure-functions-durable-extension
Azure Functions的持久性任务框架扩展
|
|
microsoft/durabletask-netherite
Durable Functions的新引擎。https://microsoft.github.io/durabletask-netherite
|
|
microsoft/durabletask-dotnet
适用于Durable Task Framework的进程外.NET SDK
|
|
MerrionComputing/EventsSourcing-on-Azure-Functions
一个库,演示将事件来源作为Azure Functions的数据持久机制
|
版本 | 下载 | 最后更新 |
---|---|---|
3.0.0 | 1,587 | 7/24/2024 |
2.17.1 | 278,302 | 5/29/2024 |
2.17.0 | 112,597 | 5/14/2024 |
2.16.2 | 377,409 | 3/28/2024 |
2.16.1 | 596,505 | 1/25/2024 |
2.16.0 | 783,356 | 11/13/2023 |
2.16.0-preview.2 | 16,577 | 10/20/2023 |
2.15.1 | 357,813 | 10/17/2023 |
2.14.0 | 392,699 | 8/29/2023 |
2.13.0 | 2,001,628 | 4/19/2023 |
2.12.2 | 305,629 | 3/27/2023 |
2.12.1 | 1,692,729 | 11/22/2022 |
2.12.0 | 44,547 | 10/28/2022 |
2.11.1 | 2,017,488 | 9/15/2022 |
2.11.0 | 276,167 | 8/25/2022 |
2.10.0 | 1,277,875 | 6/1/2022 |
2.9.1 | 4,419 | 5/25/2022 |
2.9.0 | 638,644 | 4/21/2022 |
2.8.0 | 128,881 | 4/13/2022 |
2.7.0 | 1,102,538 | 2/1/2022 |
2.6.0 | 1,381,151 | 10/26/2021 |
2.5.6 | 1,017,174 | 7/22/2021 |
2.5.5 | 15,882 | 6/11/2021 |
2.5.4 | 1,130,601 | 4/29/2021 |
2.5.2 | 768,343 | 3/18/2021 |
2.5.1 | 853,120 | 1/25/2021 |
2.5.0 | 520,541 | 11/20/2020 |
2.4.1 | 1,261,012 | 8/25/2020 |
2.4.0 | 9,616 | 8/18/2020 |
2.3.0 | 82,348 | 6/6/2020 |
2.2.5 | 711,211 | 5/28/2020 |
2.2.4 | 514,449 | 4/10/2020 |
2.2.3 | 190,094 | 3/18/2020 |
2.2.1 | 1,110,029 | 1/7/2020 |
2.2.0 | 127,592 | 12/20/2019 |
2.1.3 | 415,145 | 9/11/2019 |
2.1.2 | 1,370,904 | 5/29/2019 |
2.1.1 | 177,134 | 4/28/2019 |
2.1.0 | 359,557 | 3/14/2019 |
2.0.11 | 512,708 | 11/21/2018 |
2.0.10 | 112,775 | 11/13/2018 |
2.0.9 | 3,941 | 10/6/2018 |
2.0.8 | 223,200 | 8/29/2018 |