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

نظرًا لأن واجهة برمجة تطبيقات Google Chat هي خدمة مشتركة، نطبّق الحصص والقيود على التأكد من استخدامه بطريقة عادلة من قبل جميع المستخدمين ولحماية البيانات أداء Google Workspace.

إذا تجاوزت إحدى الحصص، ستتلقّى رسالة HTTP تتضمّن 429: Too many requests. رمز الحالة. عمليات التحقّق الإضافية من الحدود القصوى لمعدّل الزحف على Chat الخلفية نفس استجابة الخطأ. إذا حدث هذا الخطأ، يجب استخدام خوارزمية التراجع الأسي ثم أعِد المحاولة لاحقًا. طالما أنك تلتزم بالحصص في الدقيقة والمذكورة في الجداول التالية، ليس هناك حد لعدد الطلبات التي يمكنك تقديمها في اليوم.

ينطبق نوعان من الحصص على طرق Chat API: لكل مساحة ولكل مشروع. حصصها.

الحصص لكل مساحة

تحدّ الحصص لكل مساحة من معدّل طلبات البحث في مساحة معيّنة وتتم مشاركتها بين جميع تطبيقات Chat التي تعمل في تلك المساحة وتتصل برقم طرق Chat API لكل حصة

يوضّح الجدول التالي تفاصيل حدود طلبات البحث لكل مساحة:

الحصة لكل مساحة

طرق Chat API

الحد المسموح به (لكل 60 ثانية، تتم مشاركته
بين جميع تطبيقات Chat في المساحة)

عدد القراءات في الدقيقة

media.download

spaces.get

spaces.members.get

spaces.members.list

spaces.messages.get

spaces.messages.list

spaces.messages.attachments.get

spaces.messages.reactions.list

900

يكتب في الدقيقة

media.upload

spaces.delete

spaces.patch

spaces.messages.create (ينطبق أيضًا على الردود التلقائية الواردة على الويب)

spaces.messages.delete

spaces.messages.patch

spaces.messages.reactions.create

spaces.messages.reactions.delete

60

الحصص لكل مشروع

تحد الحصص لكل مشروع من معدّل الطلبات لمشروع Google Cloud. وبالتالي تنطبق على تطبيق Chat واحد طرق Chat API لكل حصة

يوضّح الجدول التالي تفاصيل حدود طلبات البحث لكل مشروع. يمكنك أيضًا الاطّلاع على هذه الحدود في صفحة الحصص.

الحصة لكل مشروع

طرق Chat API

الحدّ الأقصى المسموح به (لكل 60 ثانية)

عدد كتابة الرسالة في الدقيقة

spaces.messages.create

spaces.messages.patch

spaces.messages.delete

3000

عدد قراءة الرسالة في الدقيقة

spaces.messages.get

spaces.messages.list

3000

كتابة العضوية في الدقيقة

spaces.members.create

spaces.members.delete

300

عدد رسائل العضوية في الدقيقة

spaces.members.get

spaces.members.list

3000

كتابة المساحة في الدقيقة

spaces.setup

spaces.create

spaces.patch

spaces.delete

60

مساحة القراءة في الدقيقة

spaces.get

spaces.list

spaces.findDirectMessage

3000

يكتب المرفق في الدقيقة

media.upload

600

عدد قراءة المرفق في الدقيقة

spaces.messages.attachments.get

media.download

3000

عدد عمليات كتابة التفاعل في الدقيقة

spaces.messages.reactions.create

spaces.messages.reactions.delete

600

عدد مرّات قراءة التفاعل في الدقيقة

spaces.messages.reactions.list

3000

حدود استخدام إضافية

هناك حدود للحصص الإضافية لإنشاء مساحات من النوع GROUP_CHAT أو SPACE (باستخدام طريقة spaces.create أو spaces.setup). إنشاء أقل من 35 مساحة في الدقيقة و210 مساحات في كل ساعة من هذه الأنواع. لا تخضع المساحات من النوع DIRECT_MESSAGE لهذه حدود الحصة الإضافية.

يمكن أن تؤدي طلبات البحث الكبيرة في الثانية (QPS) لأي واجهة برمجة تطبيقات تستهدف المساحة نفسها حدود داخلية إضافية غير مرئية في الحصص.

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

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

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

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

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

  1. أرسِل طلبًا إلى Google Chat 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 Cloud قد تحتاج إلى زيادة حصصك. إذا كنت تتوقع أحداثًا قادمة لزيادة الاستخدام، يمكنك طلب تعديل الحصص من صفحة "الحصص" في وحدة تحكُّم Google Cloud.

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