【发布时间】:2016-09-29 08:26:00
【问题描述】:
我有一个 Python 进程在无限循环中每秒从Google TaskQueue REST API 租用任务:
credentials = GoogleCredentials.get_application_default()
task_api = googleapiclient.discovery.build('taskqueue', 'v1beta2', credentials=credentials)
while True:
tasks = task_api.tasks().lease(...).execute()
time.sleep(1)
这个过程有时会运行好几个小时。但偶尔会因 HTTP 错误之一而崩溃:
- 500 后端错误
- 503 后端错误
- 500 后端发生内部错误
该进程正在 Google 计算引擎服务器上运行。它使用由 GOOGLE_APPLICATION_CREDENTIALS 环境变量指定的服务帐户密钥。这是谷歌任务队列错误还是我错过了什么?例如。我需要在每次租赁请求之前重新阅读凭据吗?
【问题讨论】:
-
后端错误是洪水保护 google 建议您实施指数退避。
-
@DalmTo 你能发布一些文档的链接吗?
-
你们两个拥有谷歌搜索的力量。 Google 错误是系统范围的,它对所有 API 都有好处developers.google.com/drive/v3/web/…
-
嗯,是关于Google Drive的,不知道也适用于Google App Engine。
-
正如我所说的“Google 错误是系统范围的,它对所有 API 都有好处”400 和 500 错误在 Google 系统中是标准的,除了可能是特定于 API 的奇怪的 400 错误。所以是的,它适用于应用引擎 500 错误。 500 错误是服务器告诉您您将要快速或服务器打嗝等待一秒钟然后重试的方式。它很少需要超过 6 次重试才能启动和响应。
标签: python google-app-engine google-compute-engine task-queue