协议修订: 2025-11-25
进度流程
当一方想要接收某个请求的进度更新时,它会在请求元数据中包含一个progressToken。
- 进度令牌 必须 是字符串或整数值。
- 发送者可以使用任何方式选择进度令牌,但在所有活动请求中 必须 是唯一的。
- 原始进度令牌
- 截至目前当前的进度值
- 一个可选的“总计 (total)”值
- 一个可选的“消息 (message)”值
- 即使总计未知,
progress值也 必须 随着每次通知而增加。 progress和total值 可以 是浮点数。message字段 应当 提供相关的可读进度信息。
行为要求
-
进度通知 必须 仅引用满足以下条件的令牌:
- 在活动请求中提供的令牌
- 与正在进行的操作相关联的令牌
-
进度请求的接收者 可以:
- 选择不发送任何进度通知
- 以其认为合适的任何频率发送通知
- 如果总值未知,则省略总值
-
对于 任务增强型请求,原始请求中提供的
progressToken必须 在任务的整个生命周期内继续用于进度通知,即使在CreateTaskResult返回之后也是如此。进度令牌保持有效并与任务关联,直到任务达到终端状态。- 任务的进度通知 必须 使用初始任务增强型请求中提供的相同
progressToken - 任务的进度通知 必须 在任务达到终端状态(
completed、failed或cancelled)后停止
- 任务的进度通知 必须 使用初始任务增强型请求中提供的相同
实现说明
- 发送者和接收者 应当 跟踪活动的进度令牌
- 双方 应当 实施速率限制以防止消息洪泛
- 进度通知 必须 在完成后停止