محدودیت های استفاده

از آنجایی که Google Sheets API یک سرویس مشترک است، برای اطمینان از استفاده منصفانه توسط همه کاربران و محافظت از سلامت کلی سیستم Google Workspace، سهمیه‌ها و محدودیت‌هایی اعمال می‌کنیم.

محدودیت های سهمیه

در حالی که Sheets API هیچ محدودیت اندازه سختی برای درخواست API ندارد، کاربران ممکن است محدودیت‌هایی را از اجزای پردازشی مختلف که توسط Sheets کنترل نمی‌شوند، تجربه کنند. برای سرعت بخشیدن به درخواست‌ها، Google حداکثر بار 2 مگابایتی را توصیه می‌کند.

Sheets API سهمیه‌ای در دقیقه دارد و هر دقیقه دوباره پر می‌شود. برای مثال، محدودیت درخواست خواندن 300 در دقیقه برای هر پروژه وجود دارد. اگر برنامه شما 350 درخواست را در یک دقیقه ارسال کند، 50 درخواست اضافی از سهمیه فراتر رفته و پاسخ کد وضعیت HTTP 429: Too many requests ایجاد می کند. اگر این اتفاق افتاد، باید از یک الگوریتم عقب‌نشینی نمایی استفاده کنید. پس از 1 دقیقه، می توانید دوباره درخواست ها را اجرا کنید. کاربران می توانند چندین درخواست را به طور همزمان ارسال کنند، تا زمانی که در محدوده سهمیه باشند.

همه درخواست‌های Sheets به صورت اتمی اعمال می‌شوند. یعنی اگر هر درخواستی معتبر نباشد، کل به روز رسانی ناموفق است و هیچ یک از تغییرات (بالقوه وابسته) اعمال نمی شود.

جدول زیر محدودیت های درخواست را شرح می دهد. به شرط اینکه در سهمیه‌های هر دقیقه بمانید، محدودیتی برای تعداد درخواست‌هایی که می‌توانید در روز انجام دهید وجود ندارد.

سهمیه ها
درخواست ها را بخوانید
در هر دقیقه در هر پروژه 300
در هر دقیقه برای هر کاربر در هر پروژه 60
درخواست ها را بنویسید
در هر دقیقه در هر پروژه 300
در هر دقیقه برای هر کاربر در هر پروژه 60

برای جزئیات بیشتر درباره محدودیت‌های فایل، به فایل‌هایی که می‌توانید در Google Drive ذخیره کنید بروید.

خطاهای سهمیه بندی مبتنی بر زمان را برطرف کنید

برای همه خطاهای مبتنی بر زمان (حداکثر N درخواست در هر X دقیقه)، توصیه می‌کنیم کد شما استثنا باشد و از یک عقب‌نشینی نمایی کوتاه‌شده استفاده کند تا مطمئن شود دستگاه‌های شما بار بیش از حد تولید نمی‌کنند.

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

الگوریتم نمونه

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

  1. درخواستی را به Google Sheets API ارسال کنید.
  2. اگر درخواست ناموفق بود، 1 + random_number_milliseconds صبر کنید و درخواست را دوباره امتحان کنید.
  3. اگر درخواست ناموفق بود، 2 + random_number_milliseconds صبر کنید و دوباره درخواست را امتحان کنید.
  4. اگر درخواست ناموفق بود، 4 + random_number_milliseconds صبر کنید و دوباره درخواست را امتحان کنید.
  5. و به همین ترتیب، تا maximum_backoff .
  6. به انتظار و تلاش مجدد تا حداکثر تعداد دفعات مجدد ادامه دهید، اما دوره انتظار بین تلاش های مجدد را افزایش ندهید.

جایی که:

  • زمان انتظار min(((2^n)+random_number_milliseconds), maximum_backoff) ، که n برای هر تکرار (درخواست) 1 افزایش می یابد.
  • random_number_milliseconds تعداد تصادفی میلی ثانیه کمتر یا مساوی 1000 است. این به جلوگیری از مواردی کمک می کند که در آن بسیاری از مشتریان با برخی موقعیت ها همگام می شوند و همه یکباره دوباره تلاش می کنند و درخواست ها را در امواج همگام ارسال می کنند. مقدار random_number_milliseconds پس از هر درخواست مجدد محاسبه می شود.
  • maximum_backoff معمولاً 32 یا 64 ثانیه است. مقدار مناسب بستگی به مورد استفاده دارد.

مشتری می تواند پس از رسیدن به maximum_backoff زمان بازگشت مجدد به تلاش مجدد ادامه دهد. تلاش مجدد بعد از این مرحله نیازی به افزایش زمان عقب نشینی ندارد. به عنوان مثال، اگر یک کلاینت از maximum_backoff زمان بازگشت 64 ثانیه استفاده کند، پس از رسیدن به این مقدار، مشتری می تواند هر 64 ثانیه یکبار دوباره امتحان کند. در برخی موارد، مشتریان باید از تلاش مجدد به طور نامحدود جلوگیری شوند.

زمان انتظار بین تلاش های مجدد و تعداد دفعات مجدد بستگی به حالت استفاده و شرایط شبکه شما دارد.

قیمت گذاری

تمام استفاده از Google Sheets API بدون هزینه اضافی در دسترس است. فراتر از محدودیت های درخواست سهمیه هزینه اضافی ندارد و حساب شما صورتحساب نمی شود.

درخواست افزایش سهمیه

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

همه پروژه ها سهمیه یکسانی ندارند. از آنجایی که در طول زمان به طور فزاینده ای از Google Cloud استفاده می کنید، ممکن است نیاز باشد که سهمیه های شما افزایش یابد. اگر انتظار افزایش چشمگیر استفاده در آینده را دارید، می‌توانید به طور فعالانه از صفحه سهمیه‌ها در کنسول Google Cloud درخواست تنظیمات سهمیه کنید .

برای کسب اطلاعات بیشتر به منابع زیر مراجعه کنید: