เนื่องจาก Google Drive API เป็นบริการที่แชร์กัน เราจึงใช้โควต้าและข้อจำกัดเพื่อให้มั่นใจว่าผู้ใช้ทุกคนจะใช้ API ได้อย่างเป็นธรรมและเพื่อปกป้องประสิทธิภาพโดยรวมของระบบ Google Workspace
การแจ้งเตือนที่ส่งไปยังที่อยู่ซึ่งระบุไว้เมื่อเปิดช่องทางการแจ้งเตือนจะไม่นับรวมกับขีดจำกัดโควต้า อย่างไรก็ตาม การเรียกใช้เมธอด changes.watch
, channels.stop
และ files.watch
จะนับรวมในโควต้าของคุณ
หากเกินโควต้า คุณจะได้รับการตอบกลับเกี่ยวกับรหัสสถานะ HTTP 403: User rate limit
exceeded
การตรวจสอบขีดจำกัดอัตราเพิ่มเติมในแบ็กเอนด์ของไดรฟ์อาจสร้างคำตอบ 429: Too many
requests
ด้วย หากเกิดเหตุการณ์เช่นนี้ คุณควรใช้อัลกอริทึม Exponential Backoff แล้วลองอีกครั้งในภายหลัง คุณจะส่งคำขอได้ไม่จำกัดต่อวันตราบใดที่คุณใช้งานไม่เกินโควต้าต่อนาทีด้านล่าง
ตารางต่อไปนี้แสดงรายละเอียดขีดจํากัดการค้นหา
โควต้า | |||||
---|---|---|---|---|---|
คำค้นหา |
|
แก้ไขข้อผิดพลาดเกี่ยวกับโควต้าตามเวลา
สำหรับข้อผิดพลาดทั้งหมดตามเวลา (คำขอสูงสุด N รายการต่อ X นาที) เราขอแนะนำให้โค้ดของคุณจับข้อยกเว้นและใช้การหน่วงเวลาแบบทวีคูณแบบตัดเศษเพื่อให้อุปกรณ์ไม่สร้างภาระมากเกินไป
การถดถอยแบบเลขชี้กำลังเป็นกลยุทธ์การจัดการข้อผิดพลาดมาตรฐานสําหรับแอปพลิเคชันเครือข่าย อัลกอริทึม Exponential Backoff จะส่งคำขออีกครั้งโดยใช้เวลารอที่เพิ่มขึ้นแบบทวีคูณระหว่างคำขอ สูงสุดไม่เกินเวลา Backoff สูงสุด หากคำขอยังคงไม่สำเร็จ คุณควรเพิ่มความล่าช้าระหว่างคำขอเมื่อเวลาผ่านไปจนกว่าคำขอจะสำเร็จ
ตัวอย่างอัลกอริทึม
อัลกอริทึม Exponential Backoff จะส่งคำขอซ้ำแบบทวีคูณ โดยจะเพิ่มเวลารอระหว่างการส่งซ้ำสูงสุดถึงเวลา Backoff สูงสุด เช่น
- ส่งคำขอไปยัง Google Drive API
- หากคำขอล้มเหลว โปรดรอ 1 +
random_number_milliseconds
แล้วลองส่งคำขออีกครั้ง - หากคำขอไม่สำเร็จ ให้รอ 2 +
random_number_milliseconds
แล้วลองส่งคำขออีกครั้ง - หากคำขอไม่สำเร็จ ให้รอ 4 +
random_number_milliseconds
แล้วลองส่งคำขออีกครั้ง - และอื่นๆ สูงสุด
maximum_backoff
ครั้ง - รอและลองอีกครั้งตามจำนวนครั้งที่อนุญาตสูงสุด แต่อย่าเพิ่มระยะเวลารอระหว่างการลองอีกครั้ง
where:
- เวลารออยู่ที่
min(((2^n)+random_number_milliseconds), maximum_backoff)
โดยn
จะเพิ่มขึ้น 1 รายการสําหรับแต่ละรอบ (คําขอ) random_number_milliseconds
คือจำนวนมิลลิวินาทีแบบสุ่มที่น้อยกว่าหรือเท่ากับ 1,000 วิธีนี้จะช่วยหลีกเลี่ยงกรณีที่ไคลเอ็นต์จำนวนมากมีการซิงค์กันตามสถานการณ์บางอย่างและพยายามอีกครั้งทั้งหมดพร้อมกัน โดยส่งคำขอเป็นกลุ่มที่ซิงค์กัน ระบบจะคํานวณค่าrandom_number_milliseconds
อีกครั้งหลังจากคําขอลองอีกครั้งแต่ละครั้งmaximum_backoff
มักจะมีความยาว 32 หรือ 64 วินาที ค่าที่เหมาะสมจะขึ้นอยู่กับกรณีการใช้งาน
ลูกค้าจะลองอีกครั้งได้หลังจากที่ถึงเวลา maximum_backoff
การลองใหม่หลังจากนี้ไม่จำเป็นต้องเพิ่มเวลาพัก ตัวอย่างเช่น หากไคลเอ็นต์ใช้เวลา maximum_backoff
64 วินาที หลังจากถึงค่านี้ ไคลเอ็นต์จะลองอีกครั้งทุก 64 วินาที ในบางสถานการณ์ ไคลเอ็นต์ควรถูกป้องกันไม่ให้ลองใหม่โดยไม่มีกำหนด
เวลารอระหว่างการลองใหม่และจำนวนการลองใหม่นั้นขึ้นอยู่กับกรณีการใช้งานและสถานะของเครือข่าย
ราคา
การใช้ Google Drive API ทั้งหมดจะใช้งานได้โดยไม่มีค่าใช้จ่ายเพิ่มเติม การขอโควต้าเกินขีดจํากัดจะไม่ทำให้เกิดค่าใช้จ่ายเพิ่มเติมและระบบจะไม่เรียกเก็บเงินจากบัญชีของคุณ
ขอเพิ่มโควต้า
คุณอาจต้องขอเพิ่มโควต้า ทั้งนี้ขึ้นอยู่กับการใช้ทรัพยากรของโปรเจ็กต์ การเรียก API โดยบัญชีบริการจะถือว่าใช้บัญชีเดียว การขอเพิ่มโควต้าอาจไม่ได้รับการอนุมัติเสมอไป หากขอเพิ่มโควต้าจำนวนมาก การอนุมัติก็อาจใช้เวลานานได้
โปรเจ็กต์แต่ละรายการอาจมีโควต้าไม่เท่ากัน เมื่อคุณใช้ Google Cloud มากขึ้นเรื่อยๆ เมื่อเวลาผ่านไป คุณอาจต้องเพิ่มโควต้า หากคาดว่าจะมีการใช้งานเพิ่มขึ้นอย่างมากในอนาคต คุณขอปรับโควต้าจากหน้าโควต้าในคอนโซล Google Cloud ได้
ดูข้อมูลเพิ่มเติมได้ในแหล่งข้อมูลต่อไปนี้