创建课程时出现 Google Clas-s-room 503 Service Unavailable Backend 错误

Posted

技术标签:

【中文标题】创建课程时出现 Google Clas-s-room 503 Service Unavailable Backend 错误【英文标题】:Google Clas-s-room 503 Service Unavailable Backend Error while Creating Course 【发布时间】:2015-11-30 18:33:06 【问题描述】:

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

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

不管我怎么做,错误还是会出现。

【问题讨论】:

我认为这个错误很可能是由于 Clas-s-room API 的使用限制。请检查此链接developers.google.com/clas-s-room/limits 如果您仍然看到问题,请告诉我。 我检查了,但在开发人员控制台中没有看到我的限制。事实上,我没有在开发者控制台中看到任何内容。 这也只发生在一个域,我客户的域。在我自己的测试域上,完全相同的代码运行完美。 我也遇到了这个错误。我可以确认我远离任何配额限制。一段时间后(〜20-30分钟),相同的请求正常工作。在我的例子中,谷歌脚本开始延迟执行,从 50 毫秒到几秒(没有任何理由,就我可以调试而言),并且在几次请求之后它开始返回与 Ariana 写的相同的错误消息。有这方面的更新吗? 【参考方案1】:

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

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

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

【讨论】:

我有一夜之间运行的脚本。我将添加指数退避的代码,但如果我的脚本被列入黑名单,我该怎么办?

以上是关于创建课程时出现 Google Clas-s-room 503 Service Unavailable Backend 错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Google 课堂 API 中使用学生副本发布课程作业时出现内部错误 可能的错误?

尝试创建新的 Google API 项目时出现 FAILED_PRECONDITION

使用 Google Apps 脚本创建 Strava Webhook 订阅时出现问题

创建 GCM 演示应用程序时出现 Javac 错误(Google App Engine Java/Windows 7)

Google PubSub:使用 AppEngine 推送端点订阅时出现 SSL 错误

从 Firebase Cloud Function 调用 Google Books API 时出现 HttpsError