Google Play EMM API 預設的每個 EMM 查詢每分鐘 60,000 次。
如果您超出配額,Google Play EMM API 會傳回 HTTP 429 Too Many Requests
。
為了確保您不會超過上述的使用限制,並為使用者提供最佳體驗,請考慮使用下一節所述的最佳做法。
未達到 API 用量限制的建議
使用 Google Play EMM API 時,您可以實作一些最佳做法來發布要求,並降低超過用量限制的風險。
隨機安排開始時間和間隔
同時進行同步或簽到裝置等活動,可能會導致要求量大幅增加。不如定期執行這些活動,而是透過隨機間隔來分配要求負載。舉例來說,您不必每 24 小時同步處理一部裝置,則可以在 23 到 25 小時的隨機選擇時間範圍內同步處理每部裝置。這有助於分散要求數。
同樣地,如果您執行的每日工作可迅速發出多次 API 呼叫,請考慮每天隨機啟動這個工作,以避免同時為所有企業客戶發出大量要求。
使用指數輪詢功能重試要求
如果您執行的工作包含許多 API 呼叫,請使用指數輪詢策略來達到配額。指數輪詢是一種演算法,以指數方式重試要求。實作簡易指數輪詢的流程範例如下:
- 向 Google Play EMM API 提出要求。
- 收到
HTTP 429
回應。 - 等待 2 秒 +
random_time
,然後重試要求。 - 收到
HTTP 429
回應。 - 等待 4 秒 +
random_time
,然後再試一次。 - 收到
HTTP 429
回應。 - 等待 8 秒 +
random_time
,然後重試要求。
random_time
通常是介於 -0.5 * 等待時間至 +0.5 * 等待時間之間的隨機數字。每次重新提出要求時,重新定義新的 random_time
。需要更頻繁的操作 (例如 0.5 秒、1 秒和 2 秒) 時,必須重試使用者完成操作所需的 API 呼叫。
頻率限制批次處理
批次處理程序達到配額時,呼叫 API 的使用者動作會增加。在這類情況下,指數輪詢策略可能會不足以維持使用者動作的延遲時間。
為避免經常達到 API 的用量限制,並增加使用者執行操作的延遲時間,請考慮批次批次使用頻率限制器 (請參閱 Google 的 RateLimiter)。透過頻率限制器,您可以調整 API 要求的速率,使其持續低於用量限制。
舉例來說,您可以開始進行批次處理,將頻率上限設定為每秒查詢 50 次。只要 API 沒有傳回錯誤,請逐漸提高頻率限制 (每分鐘 1%)。每次達到配額時,您的要求比率就會降低 20%。這種自動調整方法可帶來更好的要求率,同時減少使用者端操作的延遲時間。