- 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/
我是一名优秀的程序员,十分优秀!