Google Drive REST API在尝试上传文件时有时会返回500:内部服务器错误。大多数这些错误实际上对应于成功上传。我们会根据Google的推荐重新尝试上传,以便稍后查看重复内容。
处理这些错误的推荐方法是什么?
答案 0 :(得分:0)
Google's documentation似乎表明这是他们的内部错误,而不是您可以修复的特定错误。他们建议使用exponential backoff,这基本上是以增加的间隔重新尝试该功能。
例如,该功能失败。等待2秒钟再试一次。如果失败,请等待4秒。然后是8秒,16,32等。更大的差距意味着你将越来越多的时间用于服务本身。虽然根据您的需要,您可能希望最终限制时间,以便在停止前等待最多10分钟。
retrying
包有一个非常好的设置。您可以from retrying import retry
然后使用retry
作为应重新尝试的任何函数的装饰器。这是我的一个例子:
@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
是在引发异常之前花费重试的时间。它们的所有值都以毫秒为单位。
答案 1 :(得分:-2)
此处描述了标准错误处理:https://developers.google.com/drive/handle-errors
但是,永远不会发生500个错误,因此请添加日志信息,Google可以为您调试此问题。感谢。