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

我有一项服务,它接收在我的 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]
]

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

【问题讨论】:

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

标签: google-api google-classroom


【解决方案1】:

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

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

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

【讨论】:

  • 我有一夜之间运行的脚本。我将添加指数退避的代码,但如果我的脚本被列入黑名单,我该怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-01
  • 2018-02-24
  • 2017-08-02
  • 2012-07-02
  • 2020-01-15
  • 2014-12-12
  • 1970-01-01
相关资源
最近更新 更多