用量限制

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 呼叫,請使用指數輪詢策略來達到配額。指數輪詢是一種演算法,以指數方式重試要求。實作簡易指數輪詢的流程範例如下:

  1. 向 Google Play EMM API 提出要求。
  2. 收到 HTTP 429 回應。
  3. 等待 2 秒 + random_time,然後重試要求。
  4. 收到 HTTP 429 回應。
  5. 等待 4 秒 + random_time,然後再試一次。
  6. 收到 HTTP 429 回應。
  7. 等待 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%。這種自動調整方法可帶來更好的要求率,同時減少使用者端操作的延遲時間。