بما أنّ Google Drive API هي خدمة مشترَكة، نطبّق حصصًا وقيودًا لضمان استخدام جميع المستخدمين لها بشكل عادل ولحماية الأداء العام لنظام Google Workspace.
الإشعارات التي تصل إلى العنوان المحدّد عند
فتح قناة إشعارات لا تُحتسب ضمن حدود حصتك. ومع ذلك، يتم احتساب المكالمات إلى طرق changes.watch
وchannels.stop
وfiles.watch
من حصتك.
في حال تجاوزك حصة معيّنة، ستتلقّى استجابة رمز حالة HTTP 403: User rate limit
exceeded
. قد تؤدي عمليات التحقق الإضافية من الحد الأقصى للمعدل في خلفية Drive أيضًا إلى إنشاء استجابة 429: Too many
requests
. إذا حدث ذلك، يجب استخدام خوارزمية التراجع الأسّي وإعادة المحاولة لاحقًا. ليس هناك حد أقصى لعدد الطلبات التي يمكنك إجراؤها يوميًا،
شرط أن تبقى ضمن الحصص المحددة في الدقيقة أدناه.
يوضح الجدول التالي بالتفصيل حدود طلبات البحث:
الحصص | |||||
---|---|---|---|---|---|
طلبات البحث |
|
حلّ أخطاء الحصص المستندة إلى الوقت
بالنسبة إلى جميع الأخطاء المستندة إلى الوقت (بحد أقصى N طلب في X دقيقة)، ننصح بأن يلتقط الرمز الخاص بك الاستثناء ويستخدم تراجع أسّي مقتطع للتأكّد من أنّ الأجهزة لا تحمّل حِملًا زائدًا.
يعد التراجع الأسي استراتيجية قياسية لمعالجة الأخطاء لتطبيقات الشبكة. تعيد خوارزمية التراجع الأسي محاولة إعادة محاولة إرسال الطلبات باستخدام فترات انتظار متزايدة بين الطلبات، وصولاً إلى الحد الأقصى لوقت التراجع. إذا لم تنجح الطلبات إلى الآن، من المهم أن تزيد حالات التأخير بين الطلبات بمرور الوقت إلى أن يتم قبولها.
مثال على الخوارزمية
تعمل خوارزمية التراجع الأسي على إعادة محاولة تنفيذ الطلبات بشكل كبير، ما يزيد من وقت الانتظار بين عمليات إعادة المحاولة وصولاً إلى الحد الأقصى لوقت التراجع. مثال:
- يمكنك تقديم طلب إلى Google Drive API.
- إذا تعذّر إجراء الطلب، يُرجى الانتظار 1 +
random_number_milliseconds
ثم إعادة محاولة الطلب. - إذا تعذّر إجراء الطلب، انتظر 2 +
random_number_milliseconds
ثم أعِد محاولة إجراء الطلب. - إذا تعذّر إجراء الطلب، انتظر 4 +
random_number_milliseconds
ثم أعِد محاولة إجراء الطلب. - وهكذا، حتى مرة واحدة (
maximum_backoff
). - يمكنك مواصلة الانتظار وإعادة المحاولة لتصل إلى الحد الأقصى لعدد عمليات إعادة المحاولة، ولكن لا تزيد فترة الانتظار بين عمليات إعادة المحاولة.
المكان:
- يبلغ وقت الانتظار
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 ثانية بعد الوصول إلى هذه القيمة. وفي مرحلة ما،
يجب أن يُمنع العملاء من إعادة المحاولة إلى أجل غير مسمى.
يعتمد وقت الانتظار بين عمليات إعادة المحاولة وعدد هذه العمليات على حالة الاستخدام وحالة الشبكة.
السعر
تتوفر جميع استخدامات Google Drive API بدون تكلفة إضافية. لا يؤدي تجاوز حدود طلبات الحصة إلى تحصيل رسوم إضافية ولا يتم تحصيل فواتير من حسابك.
طلب زيادة الحصة
بناءً على استخدام مشروعك للموارد، قد تريد طلب زيادة في الحصة. يُعتبَر طلبات البيانات من واجهة برمجة التطبيقات التي يجريها حساب الخدمة على أنّها تستخدم حسابًا واحدًا. لا يضمن التقدّم بطلب للحصول على حصة زائدة الموافقة. قد تستغرق زيادات الحصص الكبيرة وقتًا أطول للموافقة عليها.
لا تملك بعض المشاريع الحصص نفسها. مع تزايد استخدام Google Cloud بمرور الوقت، قد تحتاج إلى زيادة حصصك. إذا كنت تتوقع حدوث زيادة ملحوظة في الاستخدام، يمكنك بشكل استباقي طلب تعديل الحصص من صفحة الحصص في Google Cloud Console.
لمزيد من المعلومات، اطّلِع على المراجع التالية: