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 นาที คุณจะเรียกใช้คำขอได้อีกครั้ง
ตารางต่อไปนี้แสดงรายละเอียดขีดจำกัดของคำขอ
| โควต้า | |||||
|---|---|---|---|---|---|
| คำขอที่อ่าน |
|
||||
| คำขอที่เขียน |
|
||||
โปรดดูรายละเอียดเกี่ยวกับขีดจำกัดของไฟล์ที่หัวข้อไฟล์ที่คุณเก็บไว้ใน Google ไดรฟ์ได้
ลักษณะการทำงานและข้อจำกัด
ขณะทำงานกับ ((sheets_api_short)) โปรดทราบลักษณะการทำงานและ ข้อจำกัดต่อไปนี้ซึ่งส่งผลต่อโควต้า
คำขออ่านคือการเรียกใช้เมธอดที่ดึงข้อมูลจากสเปรดชีต เช่น
getหรือsearchคำขอเขียนคือการเรียกเมธอดที่เปลี่ยนแปลงสเปรดชีต เช่นupdate,clearหรือcopyToผู้ใช้สามารถส่งคำขอหลายรายการพร้อมกันได้ตราบใดที่คำขอเหล่านั้นอยู่ภายในโควต้าที่กำหนด คำขอ แบบกลุ่มแต่ละรายการ รวมถึงคำขอรองใดๆ จะนับเป็นคำขอ API 1 รายการที่รวมอยู่ในโควต้าการใช้งาน
ระบบจะใช้คำขอชีตทั้งหมดแบบอะตอมมิก กล่าวคือ หากคำขอใดไม่ถูกต้อง การอัปเดตทั้งหมดจะไม่สำเร็จและจะไม่มีการใช้การเปลี่ยนแปลงใดๆ (ซึ่งอาจขึ้นอยู่กับคำขออื่น)
มีขีดจำกัดเวลาสูงสุดสำหรับการประมวลผลคำขอ API 1 รายการ เมื่อ ชีตประมวลผลคำขอนานกว่า 180 วินาที คำขอจะแสดงข้อผิดพลาดหมดเวลา
หากคุณใช้โควต้าต่อนาทีตามที่กำหนด คุณจะส่งคำขอได้ไม่จำกัดจำนวนต่อวัน
แก้ไขข้อผิดพลาดเกี่ยวกับโควต้าตามเวลา
สำหรับข้อผิดพลาดทั้งหมดที่อิงตามเวลา (คำขอสูงสุด N รายการต่อ X นาที) เราขอแนะนำให้ โค้ดของคุณตรวจพบข้อยกเว้นและใช้การถอยแบบทวีคูณที่ถูกตัดเพื่อให้แน่ใจว่าอุปกรณ์ จะไม่สร้างภาระงานมากเกินไป
Exponential Backoff เป็นกลยุทธ์การจัดการข้อผิดพลาดมาตรฐานสำหรับแอปพลิเคชันเครือข่าย อัลกอริทึม Exponential Backoff จะลองส่งคำขออีกครั้งโดยใช้เวลารอที่เพิ่มขึ้นแบบทวีคูณ ระหว่างคำขอต่างๆ จนถึงเวลา Backoff สูงสุด หากคำขอไม่สำเร็จ คุณควร เพิ่มความล่าช้าระหว่างคำขอเมื่อเวลาผ่านไปจนกว่าคำขอจะสำเร็จ
ตัวอย่างอัลกอริทึม
อัลกอริทึม Exponential Backoff จะลองส่งคำขออีกครั้งแบบทวีคูณ โดยจะเพิ่มเวลารอ ระหว่างการลองส่งอีกครั้งจนถึงเวลา Backoff สูงสุด เช่น
- ส่งคำขอไปยัง Google Sheets 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 Sheets API ทั้งหมดจะใช้งานได้โดยไม่มีค่าใช้จ่ายเพิ่มเติม การส่งคำขอเกินโควต้า จะไม่ทำให้เกิดค่าใช้จ่ายเพิ่มเติมและระบบจะไม่เรียกเก็บเงินจากบัญชีของคุณ
ขอเพิ่มโควต้า
คุณอาจต้องขอปรับโควต้าตามการใช้ทรัพยากรของโปรเจ็กต์ ระบบจะถือว่าการเรียก API โดยบัญชีบริการเป็นการใช้บัญชีเดียว การขอโควต้าที่ปรับแล้วอาจไม่ได้รับการอนุมัติเสมอไป คำขอปรับโควต้า ซึ่งจะเพิ่มค่าโควต้าอย่างมากอาจใช้เวลานานกว่าจะได้รับการอนุมัติ
โปรเจ็กต์แต่ละโปรเจ็กต์อาจมีโควต้าไม่เท่ากัน เมื่อคุณใช้ Google Cloud มากขึ้นเรื่อยๆ ค่าโควต้าอาจต้องเพิ่มขึ้น หากคาดว่าการใช้งานจะเพิ่มขึ้นอย่างเห็นได้ชัดในอนาคต คุณสามารถขอปรับโควต้าล่วงหน้าได้จากหน้าโควต้าใน Google Cloud Console
ดูข้อมูลเพิ่มเติมได้ที่แหล่งข้อมูลต่อไปนี้