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

Durable Functions各实例数据交换是否用Task Hub?及函数间传输方式咨询

Durable Functions 函数间数据传输机制解析

Durable Functions 里 Client→Orchestration→Activity 这种链式调用的核心数据传输逻辑,完全依赖 Task Hub 持久化存储,而非直接的网络通信,具体各环节的流程如下:

  • Client 到 Orchestration
    Client 发起 Orchestration 调用时,会把启动参数序列化后写入 Task Hub 的控制队列,同时在实例表中生成该 Orchestration 的元数据记录。Orchestration 运行时会持续监控控制队列,发现新任务后就拉取参数、启动对应的实例。Client 拿到的只是 Orchestration 的实例 ID,后续查询运行状态也是直接从 Task Hub 读取,不会和 Orchestration 实例做直接网络交互。

  • Orchestration 到 Activity
    Orchestration 调用 Activity 时,会将 Activity 的输入参数序列化后写入 Task Hub 的工作队列。Activity 运行时从工作队列中取出任务,反序列化参数执行逻辑,完成后把返回值序列化写回 Task Hub 的结果队列。Orchestration 运行时会轮询结果队列,拿到返回值后继续执行后续流程。

  • 返回值的存储与复用
    不管是 Activity 还是 Orchestration 的返回值,都会被持久化到 Task Hub 的存储组件里(比如 Azure 表存储的实例表、历史表,或者你配置的 Cosmos DB)。后续如果有其他函数需要用到这些值,都是直接从 Task Hub 读取,不会去调用前一个函数的实例获取数据。

额外注意

  • 默认用 JSON 序列化数据,所以传递的对象必须是可 JSON 序列化的;如果有复杂类型,需要自定义序列化逻辑。
  • 这种基于 Task Hub 的传输机制,是 Durable Functions 实现可靠性(实例重启后能恢复状态)、可追溯性(全执行历史可查)的核心基础。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:59:57