حدود الاستخدام

بما أنّ Google Drive API هي خدمة مشترَكة، نفرض حصصًا وقيودًا للتأكّد من أنّ جميع المستخدمين يستفيدون منها بشكل عادل ولحماية الأداء العام لنظام Google Workspace.

لا يتم احتساب الإشعارات التي يتم تسليمها إلى العنوان المحدّد عند فتح قناة إشعارات ضمن حدود الحصة. ومع ذلك، يتم احتساب طلبات البيانات من الطرق changes.watch وchannels.stop وfiles.watch ضمن حصتك.

في حال تجاوزت الحصة، ستتلقّى استجابة برمز حالة HTTP‏ 403: User rate limit exceeded. قد تؤدي عمليات التحقّق الإضافية من الحد الأقصى لعدد الطلبات في الخلفية في Drive أيضًا إلى إنشاء الرد 429: Too many requests. في حال حدوث ذلك، عليك استخدام خوارزمية الرقود الأسي الثنائي وإعادة المحاولة لاحقًا. ما دمت تلتزم بالحصة المخصّصة لكل دقيقة الموضّحة أدناه، ليس هناك حدّ لعدد الطلبات التي يمكنك إرسالها يوميًا.

يوضّح الجدول التالي حدود طلبات البحث:

الحصص
طلبات البحث
لكل 60 ثانية 12,000
لكل 60 ثانية لكل مستخدم 12,000

حلّ أخطاء الحصة المستندة إلى الوقت

بالنسبة إلى جميع الأخطاء المستندة إلى الوقت (بحد أقصى N طلب في كل X دقيقة)، ننصح بأن يرصد الرمز البرمجي الاستثناء ويستخدم تراجعًا أسيًا مقتطعًا للتأكّد من أنّ أجهزتك لا تُحمّل عبئًا مفرطًا.

التمهّل الأسي هو استراتيجية معيارية للتعامل مع الأخطاء في تطبيقات الشبكة. تعيد خوارزمية الرقود الأسي الثنائي محاولة إرسال الطلبات باستخدام فترات انتظار متزايدة بشكل أسي بين الطلبات، وذلك حتى بلوغ الحد الأقصى لوقت الرقود الأسي الثنائي. إذا استمر تعذُّر تنفيذ الطلبات، من المهم زيادة حالات التأخير بين الطلبات بمرور الوقت إلى أن يتم تنفيذ الطلب بنجاح.

مثال على الخوارزمية

تعيد خوارزمية الرقود الأسي الثنائي محاولة إرسال الطلبات بشكل أسي، ما يؤدي إلى زيادة وقت الانتظار بين عمليات إعادة المحاولة إلى أن يصل إلى الحد الأقصى لوقت الرقود الأسي الثنائي. على سبيل المثال:

  1. إرسال طلب إلى Google Drive API
  2. إذا تعذّر تنفيذ الطلب، انتظِر لمدة 1 + random_number_milliseconds وأعِد محاولة تنفيذ الطلب.
  3. في حال تعذّر إرسال الطلب، انتظِر لمدة 2 + random_number_milliseconds وأعِد محاولة إرساله.
  4. في حال تعذّر تنفيذ الطلب، انتظِر 4 ثوانٍ + random_number_milliseconds ثم أعِد محاولة تنفيذ الطلب.
  5. وهكذا، حتى maximum_backoff مرة.
  6. واصِل الانتظار وإعادة المحاولة حتى بلوغ الحدّ الأقصى لعدد المحاولات، ولكن لا تزد فترة الانتظار بين المحاولات.

where:

  • يبلغ وقت الانتظار 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.

لمزيد من المعلومات، يُرجى الاطّلاع على المراجع التالية: