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