Google drive api 20%的google docs api请求返回401未经授权

Google drive api 20%的google docs api请求返回401未经授权,google-drive-api,Google Drive Api,我们有一个后台工作,可以将一千多篇google drive文章同步到我们的服务器上。该作业每天同步所有文章。当这种情况发生时,大约20%的请求会以401响应失败。这并不特定于任何文件有时一个文件将获得200个,其他文件将获得401个,通常文件在接近结束时失败 这对于调试来说是一件痛苦的事情,因为只有在同步所有数据时,它才会发生在我们的生产服务器上。即使在单独同步时,具有相同密钥的相同文章也会在生产中传递 到目前为止,我已经尝试过: 检查谷歌的费率限制。(用户和应用程序)都在限制之内 请求之间的

我们有一个后台工作,可以将一千多篇google drive文章同步到我们的服务器上。该作业每天同步所有文章。当这种情况发生时,大约20%的请求会以401响应失败。这并不特定于任何文件有时一个文件将获得200个,其他文件将获得401个,通常文件在接近结束时失败

这对于调试来说是一件痛苦的事情,因为只有在同步所有数据时,它才会发生在我们的生产服务器上。即使在单独同步时,具有相同密钥的相同文章也会在生产中传递

到目前为止,我已经尝试过:

  • 检查谷歌的费率限制。(用户和应用程序)都在限制之内
  • 请求之间的延迟时间
  • 延迟重试
我们正在使用ruby和GoogleAPI客户端gem。 还有他们的api的V2

此时此刻,我已别无选择,正在寻找想法,或者想知道是否有其他人也有类似的问题

更新/回答评论问题:

  • 在第二次尝试中,他们仍然失败,同样的错误401
  • 对于每个文件,我们执行3个请求;元数据、纯文本和1个以上。每个文件总共有3个请求
  • 我们的总文件数大约为1300个文件x 3个请求,这是一个很大的数目,但我们再次检查我们是否在速率限制内,并得到了一个401而不是速率限制错误
  • 没有一个请求是批处理的,仍然在速率限制内,我没有看到直接的优势
我过去也有过类似的事情发生,我认为这是一堆废话,基本上是做了
尝试{stuff();}catch(ex){if(401){/*有时我们会得到一个完全虚假的401,所以让我们再试一次,只是为了确定。*/stuff();}
-虽然这只是解决根本原因,而不是解决根本原因,它起作用了great@hanshenrik我应该提到,我们会重试,目前延迟2秒。您的设置是什么?您的请求在第二次尝试@ChrisCPO时有效吗?您与流程交互的文件有多少?您实际向Google发送了多少请求?@Raserhin我将编辑问题来回答您的问题。@ChrisCPO:3900一天的请求不会太多,但3900并发请求可能会耗尽资源。因此,优化的并发请求将有助于在考虑资源的同时避免网络流量的任何瓶颈和槽化。否则,碎片化下载机制是一个优势。我过去也遇到过类似的事情,我认为这是一堆废话,基本上是
尝试{stuff();}catch(ex){if(401){/*有时我们会得到一个完全伪造的401,所以让我们再试一次,以确保。*/stuff();}
-虽然这只是解决了根本原因,而不是解决了根本原因,但还是奏效了great@hanshenrik我应该提到,我们会重试,目前延迟2秒。您的设置是什么?您的请求在第二次尝试@ChrisCPO时有效吗?您与流程交互的文件有多少?您实际向Google发送了多少请求?@Raserhin我将编辑问题来回答您的问题。@ChrisCPO:3900一天的请求不会太多,但3900并发请求可能会耗尽资源。因此,优化的并发请求将有助于在考虑资源的同时避免网络流量的任何瓶颈和槽化。否则,碎片化下载机制是一个优势。