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 แบบง่ายมาใช้มีดังนี้
- ส่งคําขอไปยัง 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
ใหม่ทุกครั้งที่ลองส่งคําขออีกครั้ง คุณจะเรียกใช้การเรียก API ที่จําเป็นสําหรับการดําเนินการที่แสดงต่อผู้ใช้ให้เสร็จสิ้นอีกครั้งได้ตามกําหนดเวลาที่บ่อยขึ้น (0.5s, 1s และ 2s)
กระบวนการแบบกลุ่มที่จํากัดอัตราคําขอ
ทุกครั้งที่กระบวนการแบบกลุ่มดําเนินการถึงโควต้า เวลาในการตอบสนองของการดําเนินการของผู้ใช้ที่เรียก API จะเพิ่มขึ้น ในสถานการณ์เช่นนี้ กลยุทธ์อย่างเช่น Exponential Backoff อาจมีประสิทธิภาพไม่ดีพอในการรักษาเวลาในการตอบสนองที่ต่ําสําหรับการดําเนินการของผู้ใช้
หากต้องการหลีกเลี่ยงการใช้งานถึงขีดจํากัดของ API ซ้ําๆ และเพิ่มเวลาในการตอบสนองสําหรับการดําเนินการที่แสดงต่อผู้ใช้ ให้ใช้ตัวจํากัดอัตราสําหรับการประมวลผลแบบกลุ่ม (ดู RateLimiter ของ Google) ตัวจํากัดอัตราช่วยให้คุณปรับอัตราคําขอ API ให้ต่ํากว่าขีดจํากัดการใช้งานได้อย่างสม่ําเสมอ
เช่น เริ่มต้นกระบวนการแบบกลุ่มที่มีอัตราเริ่มต้นเท่ากับ 50 QPS ตราบใดที่ API ไม่แสดงผลข้อผิดพลาด ให้เพิ่มขีดจํากัดอัตราอย่างช้าๆ (1% ทุกนาที) แต่ละครั้งที่ใช้โควต้าหมด ให้ลดอัตราคําขอลง 20% แนวทางแบบปรับเปลี่ยนได้นี้ส่งผลให้อัตราคําขอมีประสิทธิภาพดีกว่า และลดเวลาในการตอบสนองสําหรับการกระทําที่ผู้ใช้เห็น