المشاركات المتتالية لا ترسل جميع رسائل البريد الإلكتروني

يجب على هذا المنتدى الموافقة على جميع المنشورات. ونتيجة لذلك، تُنشر بعض المنشورات في تتابع سريع: عندما يسجل المشرف الدخول، يقوم بالموافقة على المنشورات بسرعة واحدة تلو الأخرى.

تم ضبط معظم التصنيفات على حالة “المراقبة” لجميع المستخدمين، ولا يسجل الدخول سوى عدد قليل جدًا من المستخدمين، ويعتمد المنتدى اعتمادًا كبيرًا على إشعارات البريد الإلكتروني.

المشكلة هي أنه كلما نُشرت المنشورات في تتابع سريع (بفارق أقل من 1.5 دقيقة)، لم تُرسل جميع رسائل البريد الإلكتروني. يُظهر هذا الاستعلام عدد رسائل البريد الإلكتروني المرسلة (إدخالات في email_logs لكل موضوع). عدد المستخدمين الذين يجب أن يتلقوا بريدًا إلكترونيًا يبلغ حوالي 2250. عندما يسجل الأشخاص الدخول مؤخرًا (حوالي 1%)، لا يتلقون بريدًا إلكترونيًا، لذا يتغير الرقم قليلاً، لكنه يجب أن يكون بين 2200 و2250.

كما ترون في السطور الثلاثة الأولى، المنشورات التي تُنشر بسرعة واحدة تلو الأخرى لا تحتوي على العدد الكامل من رسائل البريد الإلكتروني.

ما الذي يمكن أن يحدث هنا؟

أوه، تم ضبط max_emails_per_day_per_user على قيمة عالية جدًا.


الأعمدة: الموضوع، التاريخ/الوقت، التصنيف، عدد رسائل البريد الإلكتروني المرسلة

في الأشهر القليلة الماضية، توصلنا إلى بعض الأفكار الجديدة:

  • لم تكن المشكلة في رسائل البريد الإلكتروني الفعلية، بل في إنشاء الإشعارات الأساسية
  • يؤدي إنشاء العديد من الإشعارات في تتابع سريع إلى إعادة تشغيل Sidekiq مع ظهور الرسالة Sidekiq is consuming too much memory (يستهلك Sidekiq الكثير من الذاكرة)
  • تؤدي إعادة تشغيل Sidekiq إلى إجهاض الدفعة الحالية من الإشعارات التي يتم إنشاؤها لمنشور، مما يؤدي إلى مجموعة غير مكتملة من الإشعارات.

تحرير: رفع UNICORN_SIDEKIQ_MAX_RSS منع حدوث هذه المشكلة مرة أخرى خلال الأيام التسعة الماضية.