เนื่องจาก Google ฟอร์ม API เป็นบริการที่ใช้ร่วมกัน เราจึงใช้โควต้าและข้อจำกัดต่างๆ เพื่อดูแลให้ผู้ใช้ทุกคนใช้งานอย่างเป็นธรรมและเพื่อปกป้องประสิทธิภาพโดยรวมของระบบ Google Workspace
หากใช้เกินโควต้า คุณจะได้รับการตอบกลับจากรหัสสถานะ HTTP 429: Too many requests
หากเกิดเหตุการณ์นี้ขึ้น คุณควรใช้อัลกอริทึมการย้อนกลับแบบเอ็กซ์โปเนนเชียลแล้วลองอีกครั้งในภายหลัง หากไม่มีการจำกัดจำนวนคำขอที่คุณทำได้ต่อวัน ตราบใดที่คุณใช้งานถึงขีดจำกัดต่อนาทีด้านล่าง
หมายเหตุ: การดูแบบฟอร์มมีข้อจำกัดเพิ่มเติม ดูตั้งค่าและรับข้อความ Push สำหรับข้อมูลเพิ่มเติม
ตารางต่อไปนี้แสดงรายละเอียดขีดจำกัดของคำขอ
โควต้า | |||||||
---|---|---|---|---|---|---|---|
คำขอที่อ่าน |
|
||||||
คำขออ่านที่แพง
(ใช้สำหรับคำขอ |
|
||||||
คำขอที่เขียน |
|
แก้ไขข้อผิดพลาดเกี่ยวกับโควต้าตามเวลา
สำหรับข้อผิดพลาดที่อิงตามเวลาทั้งหมด (สูงสุด N คำขอต่อ X นาที) เราขอแนะนำให้โค้ดจับข้อยกเว้นและใช้ Exponential Backoff ที่ถูกตัดออกเพื่อให้มั่นใจว่าอุปกรณ์จะไม่โหลดมากเกินไป
Exponential Backoff เป็นกลยุทธ์การจัดการข้อผิดพลาดมาตรฐานสำหรับแอปพลิเคชันเครือข่าย อัลกอริทึม Backoff แบบเอ็กซ์โพเนนเชียลจะพยายามส่งคำขอซ้ำโดยใช้เวลารอที่เพิ่มขึ้นแบบทวีคูณระหว่างคำขอ โดยไม่เกินเวลาแบ็คออฟสูงสุด หากคำขอยังคงไม่สำเร็จ ความล่าช้าระหว่างคำขอจะเพิ่มขึ้นเมื่อเวลาผ่านไปจนกว่าคำขอจะประสบความสำเร็จ
ตัวอย่างอัลกอริทึม
อัลกอริทึม Backoff แบบเอ็กซ์โพเนนเชียลจะส่งคำขอซ้ำแบบทวีคูณ ซึ่งจะเพิ่มเวลารอระหว่างการลองซ้ำจนถึงเวลา Backoff สูงสุด เช่น
- ส่งคำขอไปยัง Google ฟอร์ม API
- หากคำขอล้มเหลว ให้รอ 1 +
random_number_milliseconds
แล้วลองส่งคำขออีกครั้ง - หากคำขอล้มเหลว ให้รอ 2 +
random_number_milliseconds
แล้วลองส่งคำขออีกครั้ง - หากคำขอล้มเหลว ให้รอ 4 +
random_number_milliseconds
แล้วลองส่งคำขออีกครั้ง - และต่อไปเรื่อยๆ ไม่เกิน
maximum_backoff
ครั้ง - รอต่อไปและลองใหม่ให้ครบจำนวนครั้งสูงสุดที่กำหนด แต่อย่าเพิ่มระยะเวลารอระหว่างการลองซ้ำ
โดยมี
- เวลารอคือ
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
หากต้องการเรียนรู้เพิ่มเติม โปรดดูแหล่งข้อมูลต่อไปนี้