2

我有一项服务,它接收在我的 SIS 中创建的课程队列,并尝试通过 Google Classroom API 自动创建它们。我能够创建大约 1000 门课程,现在我收到以下错误:

Google.Apis.Requests.RequestError
The service is currently unavailable. [503]
Errors [
    Message[The service is currently unavailable.] Location[ - ] Reason[backendError] Domain[global]
]

我做什么似乎并不重要,错误仍然存​​在。

4

1 回答 1

3

这在 Google API 中经常发生。这是谷歌服务器用来说“你要快速减速”的方法。为了处理这个问题,表现良好的 API 客户端应该实现指数退避

例如,您的脚本可以尽可能快地创建课程,只要它从 Google 获得 HTTP 2xx 成功响应。一旦看到 503 后端错误,它应该暂停所有调用 1 秒,然后重试失败的操作。很多时候,第二次尝试操作会成功,但如果不是,您的脚本应该暂停 2 秒,然后暂停 4、8 等,直到成功。我建议最多尝试 10 次,然后因错误而失败。

如果您的脚本不执行退避并且只是继续重试 API 调用而没有暂停,您可能会看到这样的错误增加,并且您的脚本最终可能会被列入黑名单。

于 2015-09-05T11:12:18.833 回答