eva*_*hin 10 python google-drive-api
我们的服务高度依赖于Google云端硬盘(使用来自https://developers.google.com/api-client-library/python/的 Python SDK ),我们的服务通过谷歌驱动器集合和文件.
检查了生产日志,我们发现当我们调用google drive API drive.files.get时,有很多http 500服务器内部错误,http 500错误率约为0.5%.当我进行调查时,极端情况是使用drive.files.get API在一小时内连续9次http 500失败.
顺便说一句:我们的服务托管在美国WEST-2数据中心的亚马逊网络服务上.
有没有人有类似的问题?
任何帮助表示赞赏.
异常调用堆栈如下所示:
__ File"/ home/xxxxxxx/xxxxxxx/storage.py",第1185行,在get_file
___gdrive_file = self.client.files().get(fileId ='0Bxn2GmQxR4zHYlNvaUlFNjl6MkE',fields ='id,title, modifiedDate,createdDate,fileSize,mimeType,downloadUrl,labels').execute()
_ File"/usr/lib/python2.7/dist-packages/apiclient/http.py",第389行,执行
_ _raise HttpError(resp ,内容,self.uri)
__HttpError:https://www.googleapis.com/drive/v2/files/0Bxn2GmQxR4zHYlNvaUlFNjl6MkE?fields=id%2Ctitle%2CmodifiedDate%2CcreatedDate%2CfileSize%2CmimeType%2CdownloadUrl%2Clabels&alt=json返回"内部错误">
Nic*_*ier 10
由于Google基础架构复杂,规模大且分布式,因此几乎不可能出现0%的错误率 - 服务器或硬盘在请求期间死亡,服务器内部意外超时,数据中心停机或负载增加,暂时的DOS攻击,行为不端的应用程序... - 所有这些都可能提高500的错误率 - 所以作为一般的良好做法,当你处理Web API时实现指数退避和重试策略是好的,实际上如果你想提供它几乎是强制性的一个可靠的服务,也可以在你的终端,它可以消除临时网络故障等...
现在0.5%有点高,我相信全球错误率平均较低,但我会把它带到Drive团队,所以他们调查并试图减少这个(有时它只是增加一个超时我们的服务器依赖项).我们总是采用降低错误率的通行证,但有时我们不得不花时间构建新功能,尤其是当产品相当新时:)
| 归档时间: |
|
| 查看次数: |
3819 次 |
| 最近记录: |