لقد قمت بإزالة قائمة بعض المواضيع وحذفها من فئة “غير مصنفة” اليوم، والآن تظهر صفحة قائمة الفئات الرئيسية عبارة “-11 إجماليًا” لتلك الفئة.
عند التفكير في الأمر - معظم المواضيع التي حذفتها كانت قد أُزيلت من القائمة سابقًا. أتساءل عما إذا كان ذلك ذا صلة، فربما يؤدي كل من إزالة القائمة والحذف بشكل منفصل إلى خصم 1 من العدد لكل موضوع.
هل سيعود هذا إلى وضعه الصحيح تلقائيًا (مع مرور الوقت أو عند حدوث حدث معين)؟
نعم، هذه هي المشكلة. يمكنني تكرار المشكلة في موقع الاختبار الخاص بي. يؤدي عدم إدراج موضوع إلى إزالته من إحصائيات المواضيع في تصنيفه. إذا قمت بعد ذلك بحذف الموضوع غير المدرج، يتم خصمه مرة أخرى من إحصائيات المواضيع في تصنيفه. هذا يعني أن عدم إدراج ثم حذف موضوع واحد يُحتسب على أنه إزالة موضوعين من الإحصائيات.
يقوم Discourse بتشغيل مهمة خلفية لـ CategoryStats مرة كل 24 ساعة. عند تشغيل هذه المهمة، يجب أن يتم تصحيح إحصائيات تصنيفك. إذا كان لديك وصول إلى وحدة تحكم rails لموقعك، ولا ترغب في انتظار تشغيل المهمة، فيمكنك تشغيل الأمر يدويًا باستخدام:
Category.update_stats
لقد اختبرت ذلك على موقعي الخاص. وقد أدى تشغيل هذا الأمر إلى إصلاح المشكلة بالنسبة لي.
اتضح أنه لإعادة إنتاج المشكلة، يجب عليك إخفاء موضوع من القائمة، الانتظار حوالي 24 ساعة حتى يتم تشغيل مهمة إحصائيات التصنيف، ثم حذف الموضوع. هذا سيتسبب في حذف الموضوع مرتين من إحصائيات التصنيف. بعد 24 ساعة أخرى، سيتم تشغيل مهمة إحصائيات التصنيف مرة أخرى. وهذا يجب أن يحل المشكلة.
السبب في حدوث ذلك هو أن حذف الموضوع يزيله فورًا من إحصائيات التصنيف. أما إخفاء موضوع من القائمة فلا يؤدي إلى إزالته من الإحصائيات إلا عند تشغيل المهمة اليومية لتحديث إحصائيات التصنيف، حيث تفحص هذه المهمة المواضيع المرئية.