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