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

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

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

หมายเหตุ: การดูแบบฟอร์มมีข้อจำกัดเพิ่มเติม ดูตั้งค่าและรับข้อความ Push สำหรับข้อมูลเพิ่มเติม

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

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

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

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

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

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

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

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

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

  1. ส่งคำขอไปยัง Google ฟอร์ม 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 ครั้งแล้ว การลองใหม่หลังจากจุดนี้ไม่จำเป็นต้องเพิ่มเวลา Backoff อีก เช่น หากไคลเอ็นต์ใช้เวลา maximum_backoff ที่ 64 วินาที จากนั้นเมื่อไปถึงค่านี้ ไคลเอ็นต์จะลองซ้ำได้ทุกๆ 64 วินาที ในบางสถานการณ์ ควรป้องกันไม่ให้ไคลเอ็นต์ลองอีกครั้งอย่างไม่มีกำหนด

เวลารอระหว่างการลองใหม่กับจำนวนการลองใหม่จะขึ้นอยู่กับกรณีการใช้งานและเงื่อนไขเครือข่าย

การกำหนดราคา

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

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

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

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

หากต้องการเรียนรู้เพิ่มเติม โปรดดูแหล่งข้อมูลต่อไปนี้