بما أنّ 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.
- إذا تعذّر إكمال الطلب، انتظِر
random_number_milliseconds
ثانية ثم أعِد محاولة إكماله. - إذا تعذّر إكمال الطلب، انتظِر
random_number_milliseconds
ثانية أو أكثر وأعِد محاولة إكماله. - إذا تعذّر إكمال الطلب، انتظِر 4 ثوانٍ أو أكثر ثم أعِد محاولة إكماله.
- وهكذا دواليك، حتى
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.
لمزيد من المعلومات، يُرجى الاطّلاع على المراجع التالية: