رفتن به محتوای اصلی
بازگشت به وبلاگ

توسعه و اتصال فنی

محدودیت نرخ API مدل؛ صف و backoff را چگونه طراحی کنیم؟

خطای ۴۲۹ معمولاً یعنی درخواست‌ها از محدودیت نرخ عبور کرده‌اند، نه اینکه سؤال کاربر نامفهوم است.

خطای ۴۲۹ معمولاً یعنی درخواست‌ها از محدودیت نرخ عبور کرده‌اند، نه اینکه سؤال کاربر نامفهوم است. ارسال دوباره هم‌زمان همه درخواست‌ها می‌تواند اختلال را بیشتر کند. صف، کنترل هم‌زمانی و فاصله تلاش مجدد باید در سمت سرویس طراحی شوند تا هر مرورگر جداگانه بار تازه نسازد.

روش اجرا و تصمیم‌گیری

محدودیت‌ها ممکن است بر اساس درخواست، توکن، حساب یا بازه زمانی باشند. واحد واقعی سرویس را بخوانید و نرخ ورودی خود را با همان واحد اندازه بگیرید. فقط کاهش تعداد درخواست کافی نیست اگر چند درخواست طولانی، سقف مصرف دیگری را پر کنند.

کارها را در صف با شناسه و موعد نگه دارید. اگر ظرفیت پر است، کاربر باید وضعیت انتظار یا عدم پذیرش روشن ببیند. طول صف را بی‌نهایت نکنید؛ کار منقضی یا لغوشده نباید پس از مدت طولانی ناگهان اجرا شود. برای گروه‌های مختلف، عدالت دسترسی و اولویت را صریح تعریف کنید.

برای پاسخ ۴۲۹، اگر Retry-After وجود دارد آن را مطابق قرارداد پردازش کنید. در نبود آن، backoff محدود با پراکندگی تصادفی به کاهش موج تکرار کمک می‌کند. تعداد تلاش و بودجه کل زمان باید پایان داشته باشند. برنامه نباید برای فرار از سهمیه، حساب تازه یا مسیر پنهان ایجاد کند.

نمونهٔ ساختگی و قابل تکرار

در مثال ساختگی، پنج کار به صف آزمایشی وارد می‌شود و برنامه فقط دو کار هم‌زمان می‌پذیرد. یکی پاسخ محدودیت نرخ می‌گیرد. همان کار با زمان مجاز بعدی در صف می‌ماند و بقیه بی‌دلیل دوباره ارسال نمی‌شوند. اگر موعد کار سوم پیش از آزادشدن ظرفیت گذشته باشد، وضعیت آن منقضی می‌شود و از کاربر تصمیم تازه خواسته می‌شود. عدد دو توصیه برای سرویس مشخص نیست؛ رفتار صف و جلوگیری از اجرای دیرهنگام را نشان می‌دهد.

محدودیت‌ها و خطاهای رایج

صف به تنهایی ظرفیت ارائه‌دهنده را افزایش نمی‌دهد و تضمین زمان پاسخ نمی‌سازد. بسته به SDK، retry داخلی ممکن است وجود داشته باشد؛ لایه‌های تکرار را روی هم بی‌خبر فعال نکنید. این طراحی باید با سهمیه واقعی و مجوز استفاده هماهنگ باشد.

کنترل پیش از استفاده

کنترلمعیار پذیرش
سهمیهواحد و دامنه محدودیت از مستندات همان سرویس روشن باشند.
انتظارکاربر وضعیت صف و امکان لغو یا پایان مهلت را ببیند.
موج تکرارretry محدود باشد و همه کارها در یک لحظه دوباره ارسال نشوند.

کاربرگ همراه

در فایل، موعد کار و زمان retry ستون‌های جدا دارند. برای آزمون از شبیه‌ساز خطای۴۲۹ استفاده کنید؛ لازم نیست سهمیه سرویس واقعی را عمداً پر کنید تا رفتار صف و انقضا بررسی شود.

دریافت کاربرگ CSV این راهنما — داده‌های داخل فایل نمونهٔ ساختگی‌اند. نسخهٔ اصلی را نگه دارید و برای آزمون خودتان یک کپی بسازید.

منبع و ادامهٔ کار

MDN: وضعیت ۴۲۹. تاریخ بررسی منابع: ۱ نوامبر ۲۰۲۶.

اگر کاربرد شما پاسخ‌گویی به مشتری است، مسیر مرتبط اپرا را ببینید و مسئله و محدودیت‌های همین کاربرگ را برای بررسی در دمو همراه داشته باشید.

برای این نیاز، کدام خدمت مناسب‌تر است؟

تماس و منشی، چت سایت و تحلیل مکالمه سه مسیر متفاوت‌اند. ابتدا خدمت متناسب نیازتان را انتخاب کنید.

انتخاب میان سه خدمتراهنمای شروع با تیم اپرا

برآورد هزینه