You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Functions中StartNewAsync与CallActivityAsync的区别及适用场景

两个方法的适用场景

  • IDurableOrchestrationClient.StartNewAsync 适用场景
    该方法仅可在持久编排流程的外部上下文调用,常见调用方包括普通HTTP触发函数、队列触发函数、定时触发函数等非编排类函数,作用是启动一个全新的独立持久编排实例,属于整个编排流程的入口触发逻辑。你可以通过该方法传入编排入参、自定义编排实例ID,完成流程的初始化启动。
  • IDurableOrchestrationContext.CallActivityAsync 适用场景
    该方法仅可在正在运行的编排函数内部调用,属于同一个编排实例内的步骤调度能力,作用是调用当前编排流程下的单步活动函数。Durable Functions的事件溯源机制会对该方法的调用做自动管控,编排重放时会直接复用历史执行结果,不会重复执行活动函数,保证流程的幂等性与可靠性,是编排流程拆分多步执行的核心方法。

实际开发选择逻辑

两个方法的使用场景完全互斥,不存在通用的优先选择规则,按需使用即可:

  • 如果你需要从零启动一个新的持久编排流程,只能选择 StartNewAsync
  • 如果你是在已运行的编排流程内部调度子步骤,只能选择 CallActivityAsync

注意:不要在编排函数内部强行通过 IDurableOrchestrationClient 调用 StartNewAsync 执行本该由活动函数处理的逻辑,这会启动完全独立的另一个编排实例,既无法直接复用当前编排的上下文,也会破坏原有编排的可靠性保障,额外增加状态跟踪的复杂度。

内容的提问来源于stack exchange,提问作者giokoguashvili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 04:06:02