5

尝试上传文件时,Google Drive REST API 有时会返回 500:内部服务器错误。大多数这些错误实际上对应于成功的上传。我们按照 Google 的建议重试上传,但稍后会看到重复项。

处理这些错误的推荐方法是什么?

4

2 回答 2

0

Google 的文档似乎表明这是他们的内部错误,而不是您可以修复的特定错误。他们建议使用指数退避,这基本上是在增加间隔重新尝试该功能。

例如,函数失败。等待 2 秒,然后重试。如果失败,请等待 4 秒。然后是 8 秒、16 秒、32 秒等。更大的差距意味着您要为服务自己提供越来越多的时间。尽管根据您的需要,您可能希望最终限制时间,以便它在停止前最多等待 10 分钟。

retrying软件包对此进行了很好的设置。您可以在任何应该重新尝试的功能上用作装饰器from retrying import retryretry这是我的一个例子:

@retry(wait_exponential_multiplier=1000, wait_exponential_max=60*1000, stop_max_delay=10*60*1000)
def find_file(name, parent=''):
    ...

要使用装饰器,您只需放在@retry函数声明之前。您可以只使用retry(),但您可以传递一些可选参数来调整时间的工作方式。我wait_exponential_multiplier用来调整尝试之间等待时间的增加。wait_exponential_max是它可以在尝试之间等待的最长时间。并且stop_max_delay是在引发异常之前重试的时间。它们的所有值都以毫秒为单位。

于 2016-12-09T11:34:50.060 回答
-2

此处描述了标准错误处理:https ://developers.google.com/drive/handle-errors

但是,永远不会发生 500 错误,因此请添加日志信息,Google 可以为您调试此问题。谢谢。

于 2013-04-07T16:58:55.923 回答