การจำกัดอัตรา
การจำกัดอัตราคือข้อจำกัดที่ API ของเรากำหนดไว้สำหรับจำนวนครั้งที่ผู้ใช้หรือไคลเอนต์สามารถเข้าถึงบริการของเราได้ภายในช่วงเวลาที่กำหนด
ทำไมต้องมีการจำกัด
เราได้กำหนดการจำกัดอัตราไว้ใน API ของเราเพื่อช่วยสร้างประสบการณ์ที่ดีที่สุดสำหรับทุกคน นี่คือเหตุผลว่าทำไมสิ่งเหล่านี้จึงสำคัญ:
-
เพื่อให้บริการของเราปลอดภัยและมั่นคง! ลองนึกถึงการจำกัดอัตราเหมือนเป็นยามที่คอยดูแลเป็นมิตร - พวกเขาคอยตรวจสอบให้แน่ใจว่าไม่มีใครสามารถทำให้ API ของเราล้นเกินด้วยคำขอจำนวนมากเกินไปในครั้งเดียว ซึ่งช่วยปกป้องบริการของเราจากการใช้งานในทางที่ผิดและทำให้ทุกอย่างทำงานได้อย่างราบรื่น
-
เพื่อให้แน่ใจว่าทุกคนได้รับส่วนแบ่งที่ยุติธรรม เช่นเดียวกับการแบ่งปันของเล่นในสนามเด็กเล่น เราต้องการให้แน่ใจว่าผู้ใช้ทุกคนของเรามีสิทธิ์เข้าถึง API อย่างเท่าเทียมกัน ด้วยการจำกัดจำนวนคำขอที่ผู้ใช้แต่ละคนสามารถทำได้อย่างนุ่มนวล เราจึงมั่นใจได้ว่าไม่มีใครต้องรอคอยนานเกินไปเพื่อถึงตาของตัวเอง
-
เพื่อรักษาประสิทธิภาพให้รวดเร็วและเชื่อถือได้ ด้วยการจัดการการไหลของคำขอโดยรวม เราสามารถรักษาเวลาตอบสนองที่รวดเร็วและบริการที่มั่นคงสำหรับผู้ใช้ที่ยอดเยี่ยมของเราทุกคน มันเหมือนกับการทำให้แน่ใจว่าทางหลวงไม่แออัดเกินไป - การจราจรจะไหลลื่นกว่าเมื่อเราป้องกันความแออัด!
การจำกัดทำงานอย่างไร
การจำกัดอัตราวัดได้ 2 วิธี:
- คำขอต่อวินาที: นี่คือจำนวนคำขอเครือข่ายที่คุณสามารถทำได้ต่อวินาที
- งานในคิว: นี่คือจำนวนงานสร้างที่เกิดขึ้นพร้อมกันที่คุณสามารถรันในคิวได้ ณ เวลาใดก็ตาม
งานในคิวคืองานในบัญชีของคุณที่อยู่ในสถานะ PENDING หรือ IN_PROGRESS ทุกเอนด์พอยต์ที่สร้างงาน (เช่น ข้อความเป็น 3D, รูปภาพเป็น 3D, หลายรูปเป็น 3D, รีเท็กซ์เจอร์, รีเมช, Rigging, แอนิเมชัน, ข้อความเป็นรูปภาพ, เอนด์พอยต์การพิมพ์ 3 มิติ และ Creative Lab) จะตรวจสอบขีดจำกัดนี้ก่อนรับงานใหม่ คำขอที่ไม่ได้สร้างงาน เช่น ยอดคงเหลือ, การใช้งาน, และการเรียกดู, แสดงรายการ หรือสตรีมงาน จะไม่นับรวมในขีดจำกัดนี้ แม้ว่าจะยังนับรวมในคำขอต่อวินาทีก็ตาม
ขีดจำกัดนี้ใช้ต่อบัญชี ดังนั้นจึงถูกแชร์ร่วมกันระหว่าง API key ทั้งหมดของคุณและ Playground งานที่คุณเริ่มในเว็บแอป Meshy ก็นับรวมในงานในคิวของคุณด้วยเช่นกัน
นอกเหนือจากการจำกัดอัตราแล้ว ลำดับความสำคัญในการประมวลผลงานก็ยังส่งผลต่อความเร็วของงานของคุณด้วย
แต่ละระดับผู้ใช้มีการจำกัดอัตราและระดับลำดับความสำคัญเฉพาะที่ออกแบบมาให้เหมาะกับความต้องการของตน นี่คือขีดจำกัดปัจจุบันตามระดับ:
| ระดับผู้ใช้ | คำขอต่อวินาที | งานในคิว | ระดับลำดับความสำคัญ |
|---|---|---|---|
| Pro | 20 | 10 | ค่าเริ่มต้น |
| Premium | 20 | 30 | สูงกว่า Pro |
| Ultra | 20 | 100 | สูงสุด |
| Studio | 20 | 20 | สูงกว่า Pro |
| Enterprise | 100 | ค่าเริ่มต้น 100 สามารถปรับแต่งได้ | สูงสุด |
หากคุณเกินขีดจำกัดเหล่านี้ คุณจะได้รับการตอบกลับ 429 Too Many Requests จาก API ของเรา มีสองประเภทของการชนขีดจำกัดที่สามารถกระตุ้นสิ่งนี้ได้ แต่ละประเภทมีการตอบกลับที่แตกต่างกัน:
- Request Hit: สิ่งนี้เกิดขึ้นเมื่อคุณทำคำขอมากเกินไปต่อวินาที คุณจะได้รับการตอบกลับ
429 Too Many Requestsพร้อมข้อความRate limit exceeded - Queue Hit: สิ่งนี้เกิดขึ้นเมื่อคุณมีงานสร้างที่เกิดขึ้นพร้อมกันมากเกินไปกำลังทำงานอยู่ คุณจะได้รับการตอบกลับ
429 Too Many Requestsพร้อมข้อความNoMorePendingTasks(หรือเมื่อเครดิตของคุณหมดลง จะเป็นNoMoreConcurrentTasks)429นี้ไม่มีRetry-After: ให้รอจนกว่างานใดงานหนึ่งของคุณจะเสร็จสิ้นก่อนที่จะสร้างงานใหม่
ส่วนหัวการจำกัดอัตรา
การตอบกลับของ API จะมีส่วนหัวเหล่านี้เพื่อให้คุณสามารถกำหนดจังหวะคำขอของคุณได้:
| ส่วนหัว | คำอธิบาย |
|---|---|
X-RateLimit-Limit | จำนวนคำขอที่อนุญาตต่อวินาทีตามระดับของคุณ |
X-RateLimit-Remaining | จำนวนคำขอที่เหลืออยู่ในวินาทีปัจจุบัน |
X-RateLimit-Reset | จำนวนวินาทีจนกว่าโควตาของคุณจะเต็มอีกครั้ง |
Retry-After | จำนวนวินาทีที่ต้องรอก่อนส่งคำขอครั้งถัดไป ส่งมาพร้อมกับ Request Hit 429 และเมื่อคุณเรียกดูงานที่ยังอยู่ในสถานะ PENDING หรือ IN_PROGRESS |
เมื่อมี Retry-After ปรากฏอยู่ ให้รอตามจำนวนวินาทีนั้นก่อนส่งคำขอครั้งถัดไป