تأتي Discourse مع 3 حدود معدل عالمية مختلفة يمكن للإداريين الموقعيين تكوينها.
حدود معدل عالمية لكل عنوان IP
تنطبق هذه الحدود على كل عنوان IP فريد يتفاعل مع تطبيق Discourse. (يُستثنى الملفات التي تُقدَّم مباشرةً من نظام الملفات أو CDN)
بشكل افتراضي، يكون هذا الحد مفعّلًا، ويمكنك تعطيله أو ضبطه في وضع الإبلاغ.
DISCOURSE_MAX_REQS_PER_IP_MODE: القيمة الافتراضية block، حيث يُطبَّق هذا الحد بشكل افتراضي. (الخيارات الأخرى هي warn، warn+block، وnone)
DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE: عدد الطلبات لكل IP في الدقيقة (الافتراضي هو 200)
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: عدد الطلبات لكل IP في 10 ثوانٍ (الافتراضي هو 50)
DISCOURSE_MAX_ASSET_REQS_PER_IP_PER_10_SECONDS: عدد طلبات الأصول (الصور الرمزية/ملفات CSS) لكل IP في 10 ثوانٍ (الافتراضي هو 200)
DISCOURSE_MAX_REQS_RATE_LIMIT_ON_PRIVATE: هل يجب أن ينطبق حد المعدل على عناوين IP الخاصة التي تصل إلى Discourse؟ القيمة الافتراضية هي false.
DISCOURSE_SKIP_PER_IP_RATE_LIMIT_TRUST_LEVEL: استخدام حدود معدل لكل مستخدم بدلاً من حدود معدل IP للمستخدمين الذين لديهم مستوى ثقة يساوي هذا المستوى أو أعلى (الافتراضي 1)
DISCOURSE_MAX_REQS_PER_IP_EXCEPTIONS: قائمة مفصولة بمسافات لعناوين IP أو كتل CIDR معفاة من حدود المعدل لكل IP. على سبيل المثال: 14.15.16.32/27 216.148.1.2
حدود معدل واجهة برمجة تطبيقات المستخدم (User API)
تقوم تطبيقات الجوال بالحصول على مفتاح واجهة برمجة تطبيقات (API key) لكل جهاز للوصول إلى Discourse نيابةً عن المستخدم (باستخدام بروتوكول مفتوح). تخضع هذه المفاتيح لقيود صارمة للغاية.
DISCOURSE_MAX_USER_API_REQS_PER_MINUTE: الافتراضي 20
DISCOURSE_MAX_USER_API_REQS_PER_DAY: الافتراضي 2880
حدود معدل واجهة برمجة تطبيقات المسؤول (Admin API)
يمكن توليد مفاتيح واجهة برمجة التطبيقات الإدارية عبر صفحة yoursite.com/admin/api/keys. يمكن لهذه المفاتيح العمل نيابةً عن المستخدمين، لكنها تتطلب صلاحيات إدارية لتوليدها. هناك حد أقصى لعدد 60 طلبًا في الدقيقة، مشترك بين جميع المفاتيح.
يمكن للمستخدمين الذين يستضيفون الخدمة بأنفسهم تغيير هذا في ملف app.yml. أما العملاء المستضافون فعليهم التواصل مع مزود الاستضافة الخاص بهم.
DISCOURSE_MAX_ADMIN_API_REQS_PER_MINUTE: 60
حدود معدل واجهة برمجة تطبيقات إضافة Data Explorer
DISCOURSE_MAX_DATA_EXPLORER_API_REQ_MODE: الافتراضي warn، حيث يُطبَّق هذا الحد بشكل افتراضي. (الخيارات الأخرى هي block، warn+block، وnone)
DISCOURSE_MAX_DATA_EXPLORER_API_REQS_PER_10_SECONDS: 2
ملاحظة: الطلبات المُرسلة عبر واجهة Data Explorer لا تُحتسب ضمن حد المعدل.
ماذا يجب أن أفعل إذا وصلت إلى حد المعدل وتعرضت للتقييد (Throttling)؟
إذا كنت تستهلك واجهة برمجة التطبيقات برمجياً واستلمت رد تقييد برمز حالة 429، فيجب عليك احترامه والبطء في الإرسال.
كمستخدم نهائي، لا ينبغي أن تواجه حدود المعدل فعلياً، وإذا حدث ذلك، فتباطأ. قد يحدث ذلك إذا فتحت 50 علامة تبويب بسرعة أو قمت بشيء مشابه لذلك.
تحذير حول الجدار الناري والوكيل العكسي! 
إذا كنت تشغّل وكيلًا عكسيًا (Reverse Proxy) غير مُهيأ بشكل صحيح، فقد يعتقد Discourse أن جميع الطلبات قادمة من عنوان IP واحد، ومن المرجح جدًا أن تصل إلى حدود المعدل مبكرًا. تأكد من تكوين وكيلك العكسي لتحويل عنوان IP بشكل صحيح.
كيف يمكنني تعديل هذه الحدود؟
لتعديل الحدود، أضف التغيير المطلوب إلى قسم env في ملف app.yml الخاص بك.
إذا كنت مستضافًا بواسطة Discourse، وتعمل على خطة Enterprise، فتواصل مع team@discourse.org إذا كنت بحاجة إلى تعديل أي من هذه الحدود.
لا يمكن تعديل حدود المعدل العالمية على خطط Free أو Starter أو Pro أو Business.