我有一个服务,需要在我的SIS中创建的课程队列,并试图通过谷歌课堂API自动创建它们。我能够创建大约1000个课程,现在我得到下面的错误:
Google.Apis.Requests.RequestError
The service is currently unavailable. [503]
Errors [
Message[The service is currently unavailable.] Location[ - ] Reason[backendError] Domain[global]
]
不管我怎么做,错误仍然发生
这是Google api经常出现的情况。这是谷歌服务器用来表示"你要快速减速"的方法。为了处理这个问题,行为良好的API客户端应该实现指数回退。
例如,你的脚本可以尽可能快地创建课程,只要它能从谷歌获得HTTP 2xx成功响应。一旦它看到503后端错误,它应该暂停所有调用1秒,然后重试失败的操作。通常在第二次尝试操作将成功,但如果它没有你的脚本应该暂停2秒,然后4,8,等等,等等,直到成功。我建议最多尝试10次,然后失败并出现错误。
如果你的脚本不做回退,只是继续重试API调用没有暂停,你可能会看到这样的错误增加,你的脚本可能最终被列入黑名单。