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

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

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

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

โควต้า
คำขอที่อ่าน
ต่อนาทีต่อโปรเจ็กต์ 3,000
ต่อนาทีต่อผู้ใช้ต่อโปรเจ็กต์ 600
คําขอการอ่านราคาแพง

(ใช้สําหรับคําขอ presentations.pages.getThumbnail)

ต่อนาทีต่อโปรเจ็กต์ 300
ต่อนาทีต่อผู้ใช้ต่อโปรเจ็กต์ 60
คำขอที่เขียน
ต่อนาทีต่อโปรเจ็กต์ 600
ต่อนาทีต่อผู้ใช้ต่อโปรเจ็กต์ 60

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

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

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

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

อัลกอริทึม Exponential 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 วิธีนี้จะช่วยหลีกเลี่ยงกรณีที่ไคลเอ็นต์จํานวนมากซิงค์ข้อมูลโดยในบางสถานการณ์ และลองใหม่ทั้งหมดพร้อมกัน โดยส่งคําขอใน wave ที่มีการซิงค์ข้อมูล ค่า random_number_milliseconds จะคํานวณใหม่หลังจากแต่ละคําขอลองอีกครั้ง
  • maximum_backoff มักจะเท่ากับ 32 หรือ 64 วินาที ค่าที่เหมาะสมขึ้นอยู่กับกรณีการใช้งาน

ไคลเอ็นต์จะลองใหม่ต่อได้หลังครบกําหนดเวลา maximum_backoff ลองใหม่หลังจากจุดนี้ไม่จําเป็นต้องเพิ่มเวลาแบ็คออฟต่อไป ตัวอย่างเช่น หากลูกค้าใช้เวลา maximum_backoff ใน 64 วินาที เมื่อมาถึงค่านี้แล้ว ไคลเอ็นต์จะลองใหม่ได้ทุก 64 วินาที ในบางครั้ง ควรป้องกันไม่ให้ไคลเอ็นต์ลองซ้ําอีกโดยไม่มีกําหนด

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

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

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

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

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

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

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