เนื่องจาก Google Chat API เป็นบริการที่ใช้ร่วมกัน เราจึงใช้โควต้าและข้อจำกัดเพื่อให้มั่นใจว่าผู้ใช้ทุกคนจะใช้ API ได้อย่างเป็นธรรมและเพื่อปกป้องประสิทธิภาพโดยรวมของ Google Workspace
หากใช้โควต้าเกิน คุณจะได้รับคําตอบพร้อมรหัสสถานะ 429: Too many requests
HTTP การตรวจสอบขีดจำกัดอัตราคำขอเพิ่มเติมแบ็กเอนด์ของ Chat อาจสร้างการตอบกลับข้อผิดพลาดแบบเดียวกันด้วย หากเกิดข้อผิดพลาดนี้ขึ้น คุณควรใช้อัลกอริทึม Backoff แบบเลขชี้กำลัง แล้วลองอีกครั้งในภายหลัง ตราบใดที่คุณใช้โควต้าต่อนาทีที่ระบุไว้ในตารางต่อไปนี้ คุณจะส่งคำขอได้แบบไม่จำกัดจำนวนต่อวัน
โควต้า 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 เป็นกลยุทธ์การจัดการข้อผิดพลาดมาตรฐานสำหรับแอปพลิเคชันเครือข่าย อัลกอริทึม 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 ได้
ดูข้อมูลเพิ่มเติมได้ที่แหล่งข้อมูลต่อไปนี้