بما أنّ 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
بمقدار مرة واحدة لكل تكرار (طلب). 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.
لمزيد من المعلومات، اطّلِع على المراجع التالية: