محدودیتها و سهمیهها، زیرساخت گوگل را از یک فرآیند خودکار که از API مرکز هشدار به شیوهای نامناسب استفاده میکند، محافظت میکنند. درخواستهای بیش از حد از یک API ممکن است ناشی از یک اشتباه تایپی بیضرر باشد، یا ممکن است ناشی از یک سیستم با طراحی ناکارآمد باشد که فراخوانیهای API غیرضروری انجام میدهد. صرف نظر از علت، مسدود کردن ترافیک از یک منبع خاص پس از رسیدن به سطح خاصی، برای سلامت کلی سیستم Google Workspace ضروری است. این تضمین میکند که اقدامات یک توسعهدهنده نمیتواند بر جامعه بزرگتر تأثیر منفی بگذارد.
در صورت عدم موفقیت درخواست API شما، یک پاسخ با کد وضعیت HTTP دریافت خواهید کرد. کد وضعیت 403 حاوی اطلاعات خطایی در مورد ورودی نادرست است و کد وضعیت HTTP 503 حاوی اطلاعات خطایی است که نشان میدهد کدام سهمیههای API از حد مجاز فراتر رفتهاند. این پاسخها به برنامه سفارشی شما اجازه میدهند تا این خطاها را تشخیص داده و اقدامات مناسب را انجام دهد.
اگر درخواستهای شما باید در یک دوره زمانی ثابت تکمیل شوند، درخواستهای خود را به صورت موازی ارسال کنید یا از چندین thread در برنامه جاوا یا C# خود استفاده کنید. نمونهای از درخواستهای موازی، درخواست دستههای کوچک ایمیل از کاربران مختلف به جای اضافه کردن یا حذف تعداد زیادی ایمیل از یک کاربر به طور همزمان است. در مورد threadها، سعی کنید با 10 thread شروع کنید، یک thread برای هر ایمیل کاربر. توجه داشته باشید، توصیه thread دارای معایبی است و برای همه موقعیتهای API مفید نیست. اگر تعداد درخواستها خیلی زیاد شود، خطاهای quota رخ میدهد.
برای همه خطاهایی که مبتنی بر زمان هستند (حداکثر N مورد برای N ثانیه در هر نخ)، به خصوص خطاهای کد وضعیت 503، توصیه میکنیم کد شما استثنا را دریافت کند و با استفاده از یک الگوریتم بازگشت نمایی ، قبل از تلاش مجدد برای فراخوانی ناموفق، کمی تأخیر ایجاد کند. یک مثال از API مرکز هشدار برای یک نخ، این است که 5 ثانیه صبر کند و فراخوانی ناموفق را دوباره امتحان کند. اگر درخواست موفقیتآمیز بود، این الگو را برای نخهای دیگر تکرار کنید. اگر درخواست دوم موفقیتآمیز نبود، برنامه شما باید فرکانس درخواست را تا زمانی که یک فراخوانی موفقیتآمیز باشد، کاهش دهد. به عنوان مثال، تأخیر 5 ثانیهای اولیه را به 10 ثانیه افزایش دهید و دوباره فراخوانی ناموفق خود را امتحان کنید. همچنین، در مورد محدودیت تلاش مجدد تصمیم بگیرید. به عنوان مثال، یک درخواست را 5 تا 7 بار با زمانهای تأخیر مختلف دوباره امتحان کنید تا اینکه برنامه شما خطایی را به کاربر برگرداند.
| دسته بندی های محدود API | محدودیتها |
|---|---|
| نرخهای QPS و QPD مرکز هشدار | API تعداد درخواستها برای پروژه API Console شما را محدود میکند. حداکثر تعداد درخواستها در هر ثانیه (QPS پروژه) برای پروژه API، ۱۰۰۰ درخواست است. و حداکثر تعداد درخواستها برای هر کاربر در هر ثانیه (QPS کاربر) ۱۵۰ درخواست است. اگر از این محدودیتها عبور شود، سرور کد وضعیت HTTP |
| انواع دیگر محدودیتها | محدودیتها و دستورالعملها |
|---|---|
| قالب داده، پیشفرض | قالب داده پیشفرض JSON است. |
| درخواستهای غیرمجاز | گوگل درخواستهای غیرمجاز به این API را مجاز نمیداند. اگر هیچ توکن مجوزی ارائه نشود، درخواست غیرمجاز تلقی میشود. برای اطلاعات بیشتر، به درخواستهای مجاز مراجعه کنید. |
درخواست افزایش سهمیه هر پروژه
بسته به میزان استفاده از منابع پروژهتان، ممکن است بخواهید درخواست تنظیم سهمیه بدهید. فراخوانیهای API توسط یک حساب کاربری سرویس، به عنوان استفاده از یک حساب کاربری واحد در نظر گرفته میشوند. درخواست برای سهمیه تنظیمشده، تضمینی برای تأیید نیست. درخواستهای تنظیم سهمیه که مقدار سهمیه را به میزان قابل توجهی افزایش میدهند، ممکن است مدت زمان بیشتری طول بکشد تا تأیید شوند.
همه پروژهها سهمیههای یکسانی ندارند. با گذشت زمان و افزایش استفاده از گوگل کلود، ممکن است لازم باشد مقادیر سهمیه شما افزایش یابد. اگر انتظار افزایش قابل توجه استفاده در آینده را دارید، میتوانید به صورت پیشگیرانه از صفحه سهمیهها در کنسول گوگل کلود، درخواست تنظیم سهمیه کنید .
برای مطالعه بیشتر، به منابع زیر مراجعه کنید:
- درباره تعدیل سهمیهها
- مشاهده میزان استفاده و محدودیتهای سهمیه فعلی شما
- درخواست محدودیت سهمیه بالاتر