في اختباري أعلاه، تم إرسال كلا الرسالتين بنجاح (لم يكن هناك أي استثناء). المشكلة هي أنه بعد تسجيل الدخول إلى حساب Discourse، رأيت أن الرسالة الأولى فقط تم استلامها ولكن الرسالة الثانية مفقودة.
لاحقًا، اكتشفت أنه إذا وضعت تأخيرًا لمدة 20 ثانية بينهما (أي في التعليق)، فعندئذٍ فقط يمكن استلام كليهما بواسطة الخادم.
مرحباً @lenny1 – لقد قمت بإزالة أجزاء من منشورك لأنها احتوت على معلومات حساسة. يرجى عدم نشر مفاتيح واجهة برمجة التطبيقات (API) أو كلمات المرور وما إلى ذلك علنًا.
قد تكون تصل إلى حد المعدل. إذا كان هذا هو السبب، فيجب أن يعيد Discourse استجابة 429. قد تكون هناك بعض المعلومات في سجلات أخطاء Discourse الخاصة بك حول هذا الأمر. توجد في Admin / Logs / Error Logs.
إذا لم تكن ترى أي أخطاء هناك، فحاول تسجيل الاستجابة التي يرسلها Discourse إلى الخادم الذي يقوم بتشغيل كود Java الخاص بك. قد يوفر ذلك بعض المعلومات المفيدة.
اعتمادًا على الحساب الذي تستخدمه لنشر الرسائل، قد تواجه حدًا أقصى لإنشاء موضوع أو حدًا أقصى لإنشاء منشور.
أنا أعمل حاليًا على برنامج نصي يرسل 11 منشورًا بشكل متتابع (في غضون ثانية تقريبًا) وهذا يعمل بشكل جيد، ولكن يتم إرسالها بواسطة حساب النظام الذي قد لا يتم تطبيق حدود معدل عليه.
شكرا على الرد.
نعم، لقد تلقيت ردًا من Discourse كما يلي:
“أنت تنشئ مواضيع بسرعة كبيرة. يرجى الانتظار 15 ثانية قبل المحاولة مرة أخرى.”
لقد قمت بحل المشكلة عن طريق تغيير حد المعدل في صفحة المسؤول، وضبط إنشاء المنشورات والمواضيع على 0.
الآن سؤالي هو هل من الممكن تعيين حد المعدل لحساب معين فقط؟
لا، لا يمكن تعيين حد المعدل لحساب معين. ومع ذلك، لا يتم تطبيق إعدادات rate limit create topic و rate limit create post على حسابات الموظفين. ربما يمكن أن يساعد ذلك في حالة الاستخدام الخاصة بك.