在 RUM 握手记录中,取消、超时和系统失败回调可能先后甚至并发到达,需要将终态事件收敛到统一完成函数,避免同一次尝试重复上报。取消底层连接前需要保存触发原因,以区分用户退出与业务超时:用户主动退出归为主动终止,业务超时归为 timeout。系统取消回调本身不足以说明用户为何终止连接。replaced 状态仅表示未完成的旧 attempt 被替换,不代表全部重连。这种设计确保握手记录能准确反映每次连接尝试的真实终态,为排查提供可靠的数据基础,避免因回调并发导致的重复计数或状态混乱。
CNOps |
在 RUM 握手记录中,取消、超时和系统失败回调可能先后甚至并发到达,需要将终态事件收敛到统一完成函数,避免同一次尝试重复上报。取消底层连接前需要保存触发原因,以区分用户退出与业务超时:用户主动退出归为主动终止,业务超时归为 timeout。系统取消回调本身不足以说明用户为何终止连接。replaced 状态仅表示未完成的旧 attempt 被替换,不代表全部重连。这种设计确保握手记录能准确反映每次连接尝试的真实终态,为排查提供可靠的数据基础,避免因回调并发导致的重复计数或状态混乱。