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

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 ไดรฟ์ได้

ลักษณะการทำงานและข้อจำกัด

ขณะทำงานกับ ((sheets_api_short)) โปรดทราบลักษณะการทำงานและ ข้อจำกัดต่อไปนี้ซึ่งส่งผลต่อโควต้า

  • คำขออ่านคือการเรียกใช้เมธอดที่ดึงข้อมูลจากสเปรดชีต เช่น get หรือ search คำขอเขียนคือการเรียกเมธอดที่เปลี่ยนแปลงสเปรดชีต เช่น update, clear หรือ copyTo

  • ผู้ใช้สามารถส่งคำขอหลายรายการพร้อมกันได้ตราบใดที่คำขอเหล่านั้นอยู่ภายในโควต้าที่กำหนด คำขอ แบบกลุ่มแต่ละรายการ รวมถึงคำขอรองใดๆ จะนับเป็นคำขอ API 1 รายการที่รวมอยู่ในโควต้าการใช้งาน

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

  • มีขีดจำกัดเวลาสูงสุดสำหรับการประมวลผลคำขอ API 1 รายการ เมื่อ ชีตประมวลผลคำขอนานกว่า 180 วินาที คำขอจะแสดงข้อผิดพลาดหมดเวลา

  • หากคุณใช้โควต้าต่อนาทีตามที่กำหนด คุณจะส่งคำขอได้ไม่จำกัดจำนวนต่อวัน

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

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

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

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

อัลกอริทึม Exponential 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. รอและลองอีกครั้งต่อไปจนกว่าจะถึงจำนวนครั้งสูงสุดที่ลองใหม่ได้ แต่ไม่ต้องเพิ่มระยะเวลารอ ระหว่างการลองใหม่

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

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

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

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

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