microsoft-graph-api - Microsoft Graph .Net 客户端库使用 Group Delta 时是否有延迟?
问题描述
在使用 Microsoft Graph .Net 客户端库创建新组并向组添加所有者、成员和团队时,我注意到使用 Delta on Groups 轮询更改有时会返回重复项。我用 no$selects
和 with运行这个$expand
members
作为测试,我想出了这个:
- 获取Groups上最新的Delta(DeltaJunk),只是为了清除delta(基本同
$deltaToken=latest
) - 创建五个组,其中包含一个所有者、两个成员(在创建组时引用的用户)和一个团队。
- 让线程休眠 10 秒以允许传播
- 使用来自DeltaJunk的令牌在组上获取新的 Delta ( Delta1 )
- 让线程休眠 10 秒
- 使用来自Delta1的令牌在组上获取另一个新的 Delta ( Delta2 )
在上面的场景中,我怀疑Delta1会返回五个创建的组,每个组都包含添加的成员,而Delta2是空的,因为在最后两次 Delta 调用之间没有任何更改。
这并非总是如此。
有时Delta1仅包含部分组,有时包含所有组。然后我会怀疑Delta2可能包含Delta1中缺少的组(由于在下一次 Delta 调用之前更改传播速度不够快),但情况并非总是如此。
有时相同的组出现在Delta2和Delta1中,有时只有其中一些,有时不同,有时根本没有。
我的猜测是,当请求进行实际更改时,不会触发 Delta 调用。相反,在 Delta 能够准确报告系统的更新状态之前,对资源的请求更改必须一直向下传播。
例如,在请求Delta1时尚未创建团队,但在调用Delta2时,它已正确创建并且已正确报告更改。
有人可以证实这一点吗?
如果是这样,在更改安全地向下传播之前需要等待多长时间?一小时?二?
解决方案
正如 Marc 提到的,由于后端发生复制,更改可能需要几分钟才能显示在增量查询中。如果您遇到比这更长的延迟,您应该打开支持票以调查问题
推荐阅读
- google-apps-script - 谷歌表格取消透视/展平并删除带零的行
- topojson - 有效的 Topojson 和 https://mapshaper.org/
- c# - 处理频繁的设备双读和节流
- angular - 在 AppendChild (Angular) 之后修改 HTMLCanvasElement?
- r - 什么是可能的 R 代码来模拟一维布朗运动路径并解释每个步骤?
- sitefinity - ASP.NET MVC Razor 视图隐藏表格列
- python - python:如何更改条形图的大小
- php - 坚持不同价值观的教义结果
- java - 在 Java 的抽象类中实现辅助函数的最佳方法是什么?
- ios - 从 Xcode Inspector 获取自定义颜色 RGB 代码