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

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

หากใช้โควต้าเกิน โดยทั่วไปคุณจะได้รับ429: Too many requestsการตอบกลับรหัสสถานะ HTTP หากเกิดกรณีนี้ขึ้น คุณควรใช้อัลกอริทึม Exponential Backoff แล้วลองอีกครั้งในภายหลัง ตราบใดที่คุณอยู่ภายใต้โควต้าต่อนาทีด้านล่าง คุณจะไม่จำกัดจำนวนคำขอที่ส่งต่อวัน

หมายเหตุ: การติดตามแบบฟอร์มมีข้อจํากัดเพิ่มเติม ดูข้อมูลเพิ่มเติมที่หัวข้อตั้งค่าและรับการแจ้งเตือนแบบพุช

ตารางต่อไปนี้แสดงรายละเอียดขีดจํากัดของคําขอ

โควต้า
คำขอที่อ่าน
ต่อวันต่อโปรเจ็กต์ ไม่จำกัด
ต่อนาทีต่อโปรเจ็กต์ 975
ต่อนาทีต่อผู้ใช้ต่อโปรเจ็กต์ 390
คำขออ่านที่มีค่าใช้จ่ายสูง

(ใช้สำหรับคำขอ forms.responses.list รายการ)

ต่อวันต่อโปรเจ็กต์ ไม่จำกัด
ต่อนาทีต่อโปรเจ็กต์ 450
ต่อนาทีต่อผู้ใช้ต่อโปรเจ็กต์ 180
คำขอที่เขียน
ต่อวันต่อโปรเจ็กต์ ไม่จำกัด
ต่อนาทีต่อโปรเจ็กต์ 375
ต่อนาทีต่อผู้ใช้ต่อโปรเจ็กต์ 150

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

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

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

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

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

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

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

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

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

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