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

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

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

เมธอด Chat API อาจมีโควต้าหลายประเภท ได้แก่ โควต้าต่อโปรเจ็กต์ โควต้าต่อพื้นที่ และโควต้าต่อผู้ใช้

โควต้าต่อโปรเจ็กต์

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

ตารางต่อไปนี้แสดงรายละเอียดขีดจำกัดการค้นหาต่อโปรเจ็กต์ นอกจากนี้ คุณยังดู ขีดจำกัดเหล่านี้ได้ในหน้า โควต้า

โควต้าต่อโปรเจ็กต์

เมธอด Chat API

ขีดจำกัด (ต่อ 60 วินาที)

การเขียนข้อความต่อนาที

spaces.messages.create

spaces.messages.patch

spaces.messages.delete

3000

การอ่านข้อความต่อนาที

spaces.messages.get

spaces.messages.list

3000

การเขียนการเป็นสมาชิกต่อนาที

spaces.members.create

spaces.members.delete

300

การอ่านการเป็นสมาชิกต่อนาที

spaces.members.get

spaces.members.list

3000

การเขียนพื้นที่ต่อนาที

spaces.setup

spaces.create

spaces.patch

spaces.delete

60

การอ่านพื้นที่ต่อนาที

spaces.get

spaces.list

spaces.findDirectMessage

3000

การเขียนไฟล์แนบต่อนาที

media.upload

600

การอ่านไฟล์แนบต่อนาที

spaces.messages.attachments.get

media.download

3000

การเขียนรีแอ็กชันต่อนาที

spaces.messages.reactions.create

spaces.messages.reactions.delete

600

การอ่านรีแอ็กชันต่อนาที

spaces.messages.reactions.list

3000

การเขียน CustomEmoji ต่อนาที

customEmojis.create

customEmojis.delete

600

การอ่าน CustomEmoji ต่อนาที

customEmojis.get

customEmojis.list

3000

การเขียนส่วนต่อนาที

users.sections.create

users.sections.delete

users.sections.patch

users.sections.position

users.sections.items.move

600

การอ่านส่วนต่อนาที

users.sections.list

users.sections.items.list

3000

โควต้าต่อพื้นที่

โควต้าต่อพื้นที่จะจำกัดอัตราการค้นหาในพื้นที่ที่กำหนด และแอป Chat ทั้งหมดที่ทำงานในพื้นที่นั้นจะใช้โควต้าเหล่านี้ร่วมกันเมื่อเรียกใช้เมธอด Chat API ที่ระบุสำหรับโควต้าแต่ละรายการ

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

โควต้าต่อพื้นที่

เมธอด Chat API

ขีดจำกัด (ต่อวินาที)

การอ่านต่อวินาที

media.download

spaces.get

spaces.members.get

spaces.members.list

spaces.messages.get

spaces.messages.list

spaces.messages.attachments.get

spaces.messages.reactions.list

15

การเขียนต่อวินาที

media.upload

spaces.delete

spaces.patch

spaces.messages.create (มีขีดจำกัดเพิ่มเติมสำหรับ เว็บฮุคขาเข้า)

spaces.messages.delete

spaces.messages.patch

spaces.messages.reactions.delete

1

การเขียนรีแอ็กชันสร้างต่อวินาที

spaces.messages.reactions.create

5

การเขียนข้อความต่อวินาทีขณะนำเข้าข้อมูลไปยัง Google Chat

spaces.messages.create

10

โควต้าต่อผู้ใช้

โควต้าต่อผู้ใช้จะจำกัดอัตราการค้นหาสำหรับผู้ใช้ Google Chat การค้นหา เกี่ยวข้องกับแอป Chat ทั้งหมดที่เรียกใช้เมธอด Chat API ใน นามของผู้ใช้ (โดยใช้ การตรวจสอบสิทธิ์ของผู้ใช้)

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

โควต้าต่อผู้ใช้

เมธอด Chat API

ขีดจำกัด (ต่อวินาที)

การเขียน CustomEmoji ต่อวินาที

customEmojis.create

customEmojis.delete

1

การอ่าน CustomEmoji ต่อวินาที

customEmojis.get

customEmojis.list

15

การเขียนส่วนต่อวินาที

users.sections.create

users.sections.delete

users.sections.patch

users.sections.position

users.sections.items.move

1

การอ่านส่วนต่อวินาที

users.sections.list

users.sections.items.list

15

ขีดจำกัดการใช้งานเพิ่มเติม

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

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

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

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

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

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

  1. ส่งคำขอไปยัง Google Chat 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 วินาทีได้ ไคลเอ็นต์ควรได้รับการป้องกันไม่ให้ลองอีกครั้งอย่างไม่มีกำหนด

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

ขอเพิ่มโควต้าต่อโปรเจ็กต์

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

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

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