ขีดจำกัดการใช้งาน

Google Play EMM API มีขีดจำกัดเริ่มต้นอยู่ที่ 60,000 คำค้นหาต่อนาทีสำหรับ EMM แต่ละรายการ

หากคุณใช้โควต้าเกิน Google Play EMM API จะแสดงผลลัพธ์เป็น HTTP 429 Too Many Requests ลองทำตามแนวทางปฏิบัติแนะนำบางส่วนที่ระบุไว้ในส่วนด้านล่าง เพื่อให้มั่นใจว่าคุณจะใช้งานไม่เกินขีดจำกัดที่ระบุไว้และมอบประสบการณ์ที่ดีที่สุดให้แก่ผู้ใช้

คําแนะนําในการใช้งาน API ไม่เกินขีดจํากัด

เมื่อใช้ Google Play EMM API คุณสามารถใช้แนวทางปฏิบัติแนะนำบางอย่างเพื่อกระจายคําขอและลดความเสี่ยงที่จะใช้เกินขีดจํากัดการใช้งาน

สุ่มเวลาเริ่มต้นและช่วงเวลา

กิจกรรมต่างๆ เช่น การซิงค์หรือการตรวจสอบอุปกรณ์พร้อมกันมีแนวโน้มที่จะส่งผลให้ปริมาณคำขอเพิ่มขึ้นอย่างมาก คุณสามารถกระจายภาระคำขอได้โดยการสุ่มช่วงเวลาเหล่านี้แทนการดำเนินการกิจกรรมเหล่านี้ตามช่วงเวลาที่กำหนดไว้อย่างสม่ำเสมอ ตัวอย่างเช่น คุณอาจซิงค์อุปกรณ์แต่ละเครื่องในช่วงเวลาแบบสุ่มระหว่าง 23-25 ชั่วโมงแทนที่จะซิงค์ทุก 24 ชั่วโมง วิธีนี้จะช่วยกระจายจำนวนคำขอ

ในทํานองเดียวกัน หากคุณเรียกใช้งานที่ทําการเรียก API หลายรายการติดต่อกันอย่างรวดเร็วในแต่ละวัน ให้ลองเริ่มงานที่สุ่มเวลาในแต่ละวันเพื่อป้องกันไม่ให้มีคําขอจํานวนมากสําหรับลูกค้าองค์กรทั้งหมดพร้อมกัน

ใช้ Exponential Backoff เพื่อลองส่งคำขออีกครั้ง

หากคุณเรียกใช้งานที่ประกอบด้วยการเรียก API หลายรายการ ให้ใช้กลยุทธ์ Exponential Backoff เพื่อตอบสนองต่อการใช้งานถึงโควต้า Exponential Backoff คืออัลกอริทึมที่พยายามส่งคำขออีกครั้งแบบทวีคูณ ตัวอย่างเวิร์กโฟลว์สําหรับการใช้ Exponential Backoff แบบง่ายมีดังนี้

  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 ใหม่ทุกครั้งที่คุณลองส่งคำขออีกครั้ง คุณอาจลองใช้การเรียก API ที่จำเป็นต้องดำเนินการที่แสดงให้ผู้ใช้เห็นอีกครั้งได้ตามกำหนดการที่บ่อยกว่า (เช่น 0.5, 1 วินาที และ 2 วินาที)

กระบวนการแบบกลุ่มที่มีขีดจำกัดอัตรา

ทุกครั้งที่กระบวนการแบบกลุ่มถึงโควต้า เวลาในการตอบสนองของการดำเนินการของผู้ใช้ที่เรียกใช้ API จะเพิ่มขึ้น ในสถานการณ์เช่นนี้ กลยุทธ์อย่างการลดจำนวนคำขอแบบทวีคูณอาจไม่มีประสิทธิภาพเพียงพอในการรักษาเวลาในการตอบสนองต่ำสำหรับการดำเนินการของผู้ใช้

ลองใช้ตัวจำกัดอัตราคำขอกับกระบวนการที่ทำแบบกลุ่ม (ดู RateLimiter ของ Google) เพื่อหลีกเลี่ยงไม่ให้ API ถึงขีดจำกัดการใช้งานซ้ำๆ และเพิ่มเวลาในการตอบสนองสำหรับการดำเนินการที่แสดงต่อผู้ใช้ เมื่อใช้ตัวจำกัดอัตรา คุณจะปรับอัตราคำขอ API เพื่อให้ยังคงต่ำกว่าขีดจำกัดการใช้งานอยู่เสมอได้

เช่น เริ่มกระบวนการแบบเป็นกลุ่มที่มีขีดจํากัดอัตราเริ่มต้น 50 QPS เพิ่มขีดจำกัดอัตราอย่างช้าๆ (1% ทุกนาที) ตราบใดที่ API ไม่แสดงข้อผิดพลาด ทุกครั้งที่คุณใช้โควต้าถึงขีดจำกัด ให้ลดอัตราการส่งคำขอลง 20% แนวทางแบบปรับเปลี่ยนนี้ส่งผลให้มีอัตราคำขอที่เหมาะสมมากขึ้นในขณะที่ลดเวลาในการตอบสนองสำหรับการดำเนินการที่แสดงต่อผู้ใช้