เนื่องจาก Google Chat API เป็นบริการที่ใช้ร่วมกัน เราจึงใช้โควต้าและข้อจำกัดเพื่อให้มั่นใจว่าผู้ใช้ทุกคนจะใช้บริการอย่างเป็นธรรมและเพื่อปกป้องประสิทธิภาพโดยรวมของ Google Workspace
หากใช้เกินโควต้า คุณจะได้รับการตอบกลับเป็นรหัสสถานะ HTTP 429: Too many requests
 การตรวจสอบขีดจำกัดอัตราเพิ่มเติมในแบ็กเอนด์ของ Chat
 อาจสร้างการตอบกลับข้อผิดพลาดเดียวกันด้วย หากเกิดข้อผิดพลาดนี้ คุณควรใช้อัลกอริทึมการถอยแบบทวีคูณ
และลองอีกครั้งในภายหลัง ตราบใดที่คุณยังคงอยู่ในโควต้าต่อนาทีที่ระบุไว้ใน
ตารางต่อไปนี้ จะไม่มีการจำกัดจำนวนคำขอที่คุณส่งได้
ต่อวัน
วิธีการของ Chat API อาจมีโควต้าหลายประเภท ได้แก่ โควต้าต่อโปรเจ็กต์ ต่อพื้นที่ทำงาน และต่อผู้ใช้
โควต้าต่อโปรเจ็กต์
โควต้าต่อโปรเจ็กต์จะจำกัดอัตราการค้นหาสำหรับโปรเจ็กต์ Google Cloud และ จึงมีผลกับแอป Chat เดียวที่เรียกใช้เมธอด Chat API ที่ระบุ สำหรับแต่ละโควต้า
ตารางต่อไปนี้แสดงรายละเอียดขีดจํากัดการค้นหาต่อโปรเจ็กต์ นอกจากนี้ คุณยังดูขีดจำกัดเหล่านี้ได้ในหน้าโควต้า
โควต้าต่อโปรเจ็กต์  | 
    เมธอดของ Chat API  | 
    ขีดจำกัด (ต่อ 60 วินาที)  | 
  
|---|---|---|
การเขียนข้อความต่อนาที  | 
    
 
 
  | 
    3000  | 
  
ข้อความที่อ่านต่อนาที  | 
    
 
  | 
    3000  | 
  
การเขียนการเป็นสมาชิกต่อนาที  | 
    
 
  | 
    300  | 
  
การอ่านการเป็นสมาชิกต่อนาที  | 
    
 
  | 
    3000  | 
  
การเขียนพื้นที่ต่อนาที  | 
    
 
  | 
    60  | 
  
การอ่านพื้นที่ต่อนาที  | 
    
 
 
  | 
    3000  | 
  
การเขียนไฟล์แนบต่อนาที  | 
    
  | 
    600  | 
  
การอ่านไฟล์แนบต่อนาที  | 
    
 
  | 
    3000  | 
  
การเขียนรีแอ็กชันต่อนาที  | 
    
 
  | 
    600  | 
  
การอ่านรีแอ็กชันต่อนาที  | 
    
  | 
    3000  | 
  
โควต้าต่อพื้นที่ทำงาน
โควต้าต่อพื้นที่จะจำกัดอัตราการค้นหาในพื้นที่หนึ่งๆ และแชร์ในหมู่ แอป Chat ทั้งหมดที่ทำงานในพื้นที่นั้นซึ่งเรียกใช้เมธอด Chat API ที่ระบุไว้ สำหรับแต่ละโควต้า
ตารางต่อไปนี้แสดงรายละเอียดขีดจํากัดการค้นหาต่อพื้นที่
โควต้าต่อพื้นที่ทำงาน  | 
    เมธอดของ Chat API  | 
    ขีดจำกัด (ต่อวินาที)  | 
  
|---|---|---|
การอ่านต่อวินาที  | 
    
       
 
 
 
 
 
 
 
  | 
    15  | 
  
การเขียนต่อวินาที  | 
    
       
 
 
 
 
 
 
  | 
    1  | 
  
สร้างการเขียนรีแอ็กชันต่อวินาที  | 
    
       
  | 
    
       5  | 
  
การเขียนข้อความต่อวินาทีขณะนำเข้าข้อมูลไปยัง Google Chat  | 
    
       
  | 
    
       10  | 
  
โควต้าต่อผู้ใช้
โควต้าต่อผู้ใช้จะจำกัดอัตราการค้นหาสำหรับผู้ใช้ Google Chat คำค้นหา เกี่ยวข้องกับแอป Chat ทั้งหมดที่เรียกใช้เมธอด Chat API ใน นามของผู้ใช้ (โดยใช้การตรวจสอบสิทธิ์ของผู้ใช้)
ตารางต่อไปนี้แสดงรายละเอียดโควต้าการค้นหาต่อผู้ใช้
โควต้าต่อผู้ใช้  | 
    เมธอดของ Chat API  | 
    ขีดจำกัด (ต่อวินาที)  | 
  
|---|---|---|
การอ่านต่อวินาที  | 
    
       
 
  | 
    15  | 
  
การเขียนต่อวินาที  | 
    
       
 
  | 
    1  | 
  
ขีดจำกัดการใช้งานเพิ่มเติม
นอกจากนี้ ยังมีโควต้าเพิ่มเติมสำหรับการสร้างพื้นที่ทำงานประเภท GROUP_CHAT
หรือ SPACE (โดยใช้วิธี spaces.create หรือ spaces.setup)
สร้างพื้นที่ทำงานประเภทนี้น้อยกว่า 35 รายการต่อนาทีและ 800 รายการต่อชั่วโมง พื้นที่ทำงานประเภท DIRECT_MESSAGE จะไม่ขึ้นอยู่กับโควต้าเพิ่มเติมเหล่านี้
การเข้าชม API สูงที่กำหนดเป้าหมายไปยังพื้นที่เดียวกันอาจทําให้เกิด ขีดจํากัดภายในเพิ่มเติมซึ่งไม่แสดงในหน้าโควต้า
แก้ไขข้อผิดพลาดเกี่ยวกับโควต้าตามเวลา
สำหรับข้อผิดพลาดทั้งหมดที่อิงตามเวลา (คำขอสูงสุด N รายการต่อ X นาที) เราขอแนะนำให้ โค้ดของคุณตรวจพบข้อยกเว้นและใช้การถอยแบบทวีคูณที่ถูกตัดเพื่อให้แน่ใจว่าอุปกรณ์ จะไม่สร้างภาระงานมากเกินไป
Exponential Backoff เป็นกลยุทธ์การจัดการข้อผิดพลาดมาตรฐานสำหรับแอปพลิเคชันเครือข่าย อัลกอริทึม Exponential Backoff จะลองส่งคำขออีกครั้งโดยใช้เวลารอที่เพิ่มขึ้นแบบทวีคูณ ระหว่างคำขอต่างๆ จนถึงเวลา Backoff สูงสุด หากคำขอไม่สำเร็จ คุณควร เพิ่มความล่าช้าระหว่างคำขอเมื่อเวลาผ่านไปจนกว่าคำขอจะสำเร็จ
ตัวอย่างอัลกอริทึม
อัลกอริทึม Exponential Backoff จะลองส่งคำขออีกครั้งแบบทวีคูณ โดยจะเพิ่มเวลารอ ระหว่างการลองส่งอีกครั้งจนถึงเวลา Backoff สูงสุด เช่น
- ส่งคำขอไปยัง Google Chat 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
  การลองใหม่หลังจากจุดนี้ไม่จำเป็นต้องเพิ่มเวลาหยุดชั่วคราวต่อไป ตัวอย่างเช่น หากไคลเอ็นต์ใช้maximum_backoffเป็นเวลา 64 วินาที หลังจากถึงค่านี้แล้ว ไคลเอ็นต์จะลองใหม่ได้ทุกๆ 64 วินาที ในบางกรณี
  ไม่ควรให้ไคลเอ็นต์ลองอีกครั้งอย่างไม่มีกำหนด
เวลาในการรอระหว่างการลองใหม่และจำนวนครั้งที่ลองใหม่จะขึ้นอยู่กับกรณีการใช้งาน และสภาพเครือข่าย
ขอเพิ่มโควต้าต่อโปรเจ็กต์
คุณอาจต้องขอปรับโควต้าตามการใช้ทรัพยากรของโปรเจ็กต์ การเรียก API โดยบัญชีบริการจะถือว่าเป็นการใช้บัญชีเดียว การขอโควต้าที่ปรับแล้วอาจไม่ได้รับการอนุมัติเสมอไป คำขอปรับโควต้า ซึ่งจะเพิ่มค่าโควต้าอย่างมากอาจใช้เวลานานกว่าในการอนุมัติ
โปรเจ็กต์แต่ละโปรเจ็กต์อาจมีโควต้าไม่เหมือนกัน เมื่อคุณใช้ Google Cloud มากขึ้นเรื่อยๆ ค่าโควต้าอาจต้องเพิ่มขึ้น หากคาดว่าการใช้งานจะเพิ่มขึ้นอย่างเห็นได้ชัดในอนาคต คุณสามารถขอปรับโควต้าล่วงหน้าได้จากหน้าโควต้าใน Google Cloud Console
ดูข้อมูลเพิ่มเติมได้ที่แหล่งข้อมูลต่อไปนี้