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

เนื่องจาก Google Sheets API เป็นบริการที่แชร์ร่วมกัน เราจึงใช้โควต้าและข้อจำกัดต่างๆ เพื่อให้แน่ใจว่าผู้ใช้ทุกคนใช้งานแอปอย่างเป็นธรรม และเพื่อปกป้อง ประสิทธิภาพการทำงานของระบบ Google Workspace

ขีดจำกัดโควต้า

แม้ว่า Sheets API จะไม่กำหนดขนาดเกินขีดจำกัดของคำขอ API แต่ผู้ใช้ก็อาจพบขีดจำกัดจากคอมโพเนนต์การประมวลผลต่างๆ ที่ชีตไม่ได้ควบคุม Google ขอแนะนำเพย์โหลดสูงสุด 2 MB เพื่อเพิ่มความเร็วคำขอ

Sheets API มีโควต้าต่อนาทีและจะเติมโควต้าทุกๆ นาที เช่น มีการจำกัดคำขออ่านไว้ที่ 300 คำขอต่อนาทีต่อโปรเจ็กต์ ถ้าแอปของคุณส่งคำขอ 350 รายการใน 1 นาที คำขออีก 50 รายการจะเกินโควต้าและจะสร้าง การตอบกลับรหัสสถานะ HTTP 429: Too many requests หากเกิดกรณีเช่นนี้ คุณควรใช้ อัลกอริทึม Exponential Backoff หลังผ่านไป 1 นาที คุณจะ สามารถดำเนินการตามคำขอได้อีกครั้ง ผู้ใช้จะส่งคำขอหลายรายการพร้อมกันได้ ตราบใดที่คำขอเหล่านั้นยังไม่เกินขีดจำกัดโควต้า

คําขอชีตทั้งหมดจะนําไปใช้แบบอะตอม กล่าวคือ หากมีคำขอที่ไม่ถูกต้อง การอัปเดตทั้งหมดจะไม่สำเร็จและจะไม่มีการใช้การเปลี่ยนแปลงใดๆ (ที่อาจเกี่ยวข้อง)

ตารางต่อไปนี้แสดงรายละเอียดของขีดจำกัดคำขอ ตราบใดที่คุณใช้งานไม่เกินโควต้าต่อนาที จะไม่มี ไม่เกินจำนวนคำขอที่คุณสามารถทำได้ต่อวัน

โควต้า
คำขอที่อ่าน
ต่อนาทีต่อโปรเจ็กต์ 300
ต่อนาทีต่อผู้ใช้ต่อโปรเจ็กต์ 60
คำขอที่เขียน
ต่อนาทีต่อโปรเจ็กต์ 300
ต่อนาทีต่อผู้ใช้ต่อโปรเจ็กต์ 60

โปรดดูรายละเอียดเกี่ยวกับขีดจํากัดของไฟล์ที่หัวข้อไฟล์ที่เก็บไว้ใน Google ไดรฟ์ได้

แก้ไขข้อผิดพลาดเกี่ยวกับโควต้าตามเวลา

สำหรับข้อผิดพลาดที่อิงตามเวลาทั้งหมด (สูงสุด N คำขอต่อ X นาที) เราขอแนะนำ โค้ดจะตรวจจับข้อยกเว้นและใช้ Exponential Backoff ที่ถูกตัดออกเพื่อให้แน่ใจว่า อุปกรณ์ไม่สร้างภาระที่มากเกินไป

Exponential Backoff เป็นกลยุทธ์การจัดการข้อผิดพลาดมาตรฐานสำหรับแอปพลิเคชันเครือข่าย CANNOT TRANSLATE อัลกอริทึม Backoff แบบเอ็กซ์โปเนนเชียลจะพยายามส่งคำขอซ้ำโดยใช้เวลารอที่เพิ่มขึ้นแบบทวีคูณ ระหว่างคำขอ จนถึงระยะเวลา Backoff สูงสุด หากคำขอยังคงไม่สำเร็จ ความล่าช้าระหว่างคำขอจะเพิ่มขึ้นเมื่อเวลาผ่านไปจนกว่าคำขอจะประสบความสำเร็จ

ตัวอย่างอัลกอริทึม

อัลกอริทึม Backoff แบบเอ็กซ์โปเนนเชียลจะพยายามส่งคำขอซ้ำแบบทวีคูณทำให้เวลารอนานขึ้น ระหว่างการลองใหม่จนถึงเวลา Backoff สูงสุดได้ เช่น

  1. ส่งคำขอไปยัง Google Sheets API
  2. หากคำขอล้มเหลว โปรดรอ 1 + random_number_milliseconds แล้วลองอีกครั้ง คำขอ
  3. หากคำขอล้มเหลว โปรดรอ 2 ครั้ง + random_number_milliseconds แล้วลองอีกครั้ง คำขอ
  4. หากคำขอล้มเหลว โปรดรอ 4 ครั้ง + random_number_milliseconds แล้วลองอีกครั้ง คำขอ
  5. และอื่นๆ สูงสุด maximum_backoff ครั้ง
  6. รอต่อไปและลองใหม่จนครบตามจำนวนสูงสุด แต่อย่าเพิ่มการรอนาน ระหว่างการลองใหม่

โดยมี

  • เวลารออยู่ที่ 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 Sheets API ทั้งหมดไม่มีค่าใช้จ่ายเพิ่มเติม เกินโควต้า ขีดจำกัดคำขอจะไม่ทำให้เกิดค่าใช้จ่ายเพิ่มเติมและบัญชีของคุณจะไม่ถูกเรียกเก็บเงิน

ขอเพิ่มโควต้า

คุณอาจต้องขอโควต้า ทั้งนี้ขึ้นอยู่กับการใช้ทรัพยากรของโปรเจ็กต์ เพิ่มขึ้น การเรียก API โดยบัญชีบริการจะถือว่ากำลังใช้ บัญชีเดียว การขอเพิ่มโควต้าอาจไม่ได้รับการอนุมัติเสมอไป ใหญ่ การเพิ่มโควต้าอาจใช้เวลาได้รับการอนุมัตินานขึ้น

โปรเจ็กต์บางรายการมีโควต้าเหมือนกันไม่ได้ เมื่อคุณใช้ Google Cloud มากขึ้นเรื่อยๆ โควต้าของคุณอาจต้องเพิ่มขึ้น ถ้าคุณคาดหวังว่า การใช้งานที่เพิ่มขึ้น คุณสามารถเชิงรุก ขอปรับโควต้า จากหน้าโควต้า ในคอนโซล Google Cloud

ดูข้อมูลเพิ่มเติมได้ในแหล่งข้อมูลต่อไปนี้