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

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

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

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

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

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

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

ในทํานองเดียวกัน หากคุณเรียกใช้งานรายวันที่เรียกใช้ 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.5s, 1s และ 2s)

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

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

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

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