- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我必须对项目列表运行一个函数。我正在使用 Azure Durable Functions,并且可以使用它们的 fan out/fan in 并行运行这些项目。策略。
但是,我想知道这样做与在单个 Activity 函数中使用新的 Parallel.ForEachAsync 方法之间存在什么区别。我需要使用持久函数,因为这是一个永恒的编排,完成后会重新启动。
最佳答案
Parallel.ForEachAsync
绑定(bind)到一个 Function App 实例。这意味着它与 Function App 拥有的资源绑定(bind)。在消耗计划中运行时,这意味着 1 个 vCPU。
在持久函数中使用扇出/扇入方法时,F2 的每个实例(参见图片)都是它自己的 Function App 实例。反过来,它可以使用分配给它的全部资源。
简而言之:通过扇出/扇入方法,您将使用(大量)更多资源。可能会给您更快的结果。
您可能最好结合使用两者:将批量工作分派(dispatch)到“F2”,以并行方式处理批量工作。
The fan-out work is distributed to multiple instances of the
F2
function. The work is tracked by using a dynamic list of tasks.Task.WhenAll
is called to wait for all the called functions to finish. Then, theF2
function outputs are aggregated from the dynamic task list and passed to theF3
function.The automatic checkpointing that happens at the
await
call onTask.WhenAll
ensures that a potential midway crash or reboot doesn't require restarting an already completed task.
关于c# - Azure持久功能: Fan Out vs. Parallel.ForEachAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72045448/
我预计此代码需要 1 秒才能执行: public async void Test() { DateTime start = DateTime.Now; await Parallel.F
如果我在下面的代码中使用 ForEachAsync,我应该使用列表还是并发集合? var images = new List(); // or a concurrency collection? aw
下面是 ForEachAsync 的实现 written by Stephen Toub . public static Task ForEachAsync(this IEnumerable sour
在 .NET 5 中,我们有 Parallel.ForEach,您可以使用 ParallelLoopState.Break() 方法来停止处理额外的迭代。允许当前的完成处理。 但是新的 .NET 6
我必须对项目列表运行一个函数。我正在使用 Azure Durable Functions,并且可以使用它们的 fan out/fan in 并行运行这些项目。策略。 但是,我想知道这样做与在单个 Ac
我必须对项目列表运行一个函数。我正在使用 Azure Durable Functions,并且可以使用它们的 fan out/fan in 并行运行这些项目。策略。 但是,我想知道这样做与在单个 Ac
我有代码可以从 SQL 流式传输数据并将其写入不同的存储。代码大概是这样的: using (var cmd = new SqlCommand("select * from MyTable", conn
我最近发现下面的代码可以有效地运行大量 I/O 绑定(bind)任务: Implementing a simple ForEachAsync, part 2 我的印象是以下内容是真实的: 这比使用 P
这里是重现的步骤。下面的程序使用 .Net Core 控制台应用程序和 EF Core 将 10,000 行从一个 SQL 表复制到另一个。该程序分 100 批插入记录,并且(这很重要!)它为每次插入
我正在试验如何跳出 ForEachAsync 循环。 break 不起作用,但我可以在 CancellationTokenSource 上调用 Cancel。 ForEachAsync 的签名有两个标
下面应该返回“C”,但它返回“B” using System.Data.Entity; //... var state = "A"; var qry = (from f in db.myTable s
在 .NET 6 项目中,我必须调用偏移分页(页面/每页)的 Web API,并且我希望尽可能使 n 个调用并行。 这是使用给定页码一次调用 API 的方法: private Task CallApi
我是一名优秀的程序员,十分优秀!