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