首页 > 解决方案 > Microsoft Graph .Net 客户端库使用 Group Delta 时是否有延迟?

问题描述

在使用 Microsoft Graph .Net 客户端库创建新组并向组添加所有者、成员和团队时,我注意到使用 Delta on Groups 轮询更改有时会返回重复项。我用 no$selects和 with运行这个$expand members

作为测试,我想出了这个:

  1. 获取Groups上最新的Delta(DeltaJunk),只是为了清除delta(基本同$deltaToken=latest
  2. 创建五个组,其中包含一个所有者、两个成员(在创建组时引用的用户)和一个团队。
  3. 让线程休眠 10 秒以允许传播
  4. 使用来自DeltaJunk的令牌在组上获取新的 Delta ( Delta1 )
  5. 让线程休眠 10 秒
  6. 使用来自Delta1的令牌在组上获取另一个新的 Delta ( Delta2 )

在上面的场景中,我怀疑Delta1会返回五个创建的组,每个组都包含添加的成员,而Delta2是空的,因为在最后两次 Delta 调用之间没有任何更改。

这并非总是如此。

有时Delta1仅包含部分组,有时包含所有组。然后我会怀疑Delta2可能包含Delta1中缺少的组(由于在下一次 Delta 调用之前更改传播速度不够快),但情况并非总是如此。

有时相同的组出现在Delta2Delta1中,有时只有其中一些,有时不同,有时根本没有。

我的猜测是,当请求进行实际更改时,不会触发 Delta 调用。相反,在 Delta 能够准确报告系统的更新状态之前,对资源的请求更改必须一直向下传播。

例如,在请求Delta1时尚未创建团队,但在调用Delta2时,它已正确创建并且已正确报告更改。

有人可以证实这一点吗?

如果是这样,在更改安全地向下传播之前需要等待多长时间?一小时?二?

标签: microsoft-graph-apimicrosoft-graph-sdks

解决方案


正如 Marc 提到的,由于后端发生复制,更改可能需要几分钟才能显示在增量查询中。如果您遇到比这更长的延迟,您应该打开支持票以调查问题


推荐阅读