【问题标题】:Does batching lead to increase in 429 Throttling errors in MSGraph API批处理是否会导致 MSGraph API 中的 429 节流错误增加
【发布时间】:2019-03-19 22:45:09
【问题描述】:

我正在尝试使用 MSGraph API 使用列表、子节点和权限端点为域同步 oneDrive 文件(元数据和权限)。 我正在对子节点和权限端点使用批处理,在单个批处理请求中同时为 10 个用户发送 10-20 个请求 URL。

这样做我得到了很多 429 错误。不过,我在进行单个(非批处理)调用时也遇到了 429 个错误。

根据与节流相关的documentation,他们要求 1.减少每个请求的操作次数 2.减少通话频率。

所以,我的问题是

10个get url的批量调用,算作10个不同的操作,10个不同的调用吗?

【问题讨论】:

    标签: api office365 microsoft-graph-api throttling http-status-code-429


    【解决方案1】:

    是否批量调用 10 个获取 url,算作 10 个不同的操作和 10 个不同的电话?

    通常,N 个 URL 将被视为 N+1 个操作(甚至更多)。来自批处理 URL 的 N 个操作和一个针对批处理 URL 本身的操作。

    关注docs

    JSON 批处理允许您通过组合来优化您的应用程序 多个请求到一个 JSON 对象中。

    由于多个请求被合并为一个请求,服务器端也只需要返回一个响应。但是每个URL的底层操作还是需要处理的,所以服务器端的工作量还是很大的,可能会减少一点。

    【讨论】:

      【解决方案2】:

      答案介于两者之间。

      尽管文档(目前无法找到实际页面)说您最多可以合并 20 个请求,但我通过实验发现限制当前设置为 15。因此,如果您在单个批次中减少通话量,您应该很高兴。

      我不确定,但将批次限制为单个用户也可能会有所帮助。

      限制设置为每个用户资源每 10 分钟 10000 个项目,请参阅this blog item

      【讨论】:

        猜你喜欢
        • 2020-02-09
        • 1970-01-01
        • 2017-05-06
        • 2018-09-30
        • 2014-08-29
        • 2016-06-14
        • 2020-12-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多