1

介绍

我合并资源日历,使用 syncToken 并与 403 rateLimitExceeded 斗争。

背景

旧应用程序。它配对和同步/合并日历。多年来一直这样做。

问题在于一些旧日历。他们以前有其他合并应用程序并包含许多旧的大型重复事件。很多东西要同步。

谷歌最近发布了一个不允许重复预订的更新。我做了一些重写,现在需要完全按时间顺序同步。由于 rateLimitExceeded 错误,我无法浏览一些日历。大多数日历/用户对都没有问题。

发布后,错误率非常严重,以至于创建用户无法在https://calendar.google.com中显示任何事件。这意味着问题(配额)超越了一个应用程序。

问题

403 Forbidden rateLimitExceeded 尽管远低于增加的 API 配额。

我开始明白每个用户都有一个隐藏的(配额)限制。我仅限于一个用户(进行创建/更新)以进行可靠跟踪。

我一直有指数退避,在大量重试后终止。最后一次尝试有 100 秒的延迟。

我已经减少了几次并行化的数量。我每秒请求不到一个(1 个请求/秒),但错误率保持不变!

更新的错误率为 75%。我猜它是 100% 来自某些日历,而其他日历则更少。

403 错误似乎仅由重复事件触发。

进一步的改进包括:

  • 使用其他用户获取/列出请求
  • 保存事件数据库
  • 请求中的配额用户

问题

为什么重复性事件在低于配额并以如此慢的速度执行时会触发 rateLimitExceeded?

4

0 回答 0