ربما، أو شيء آخر يجعل الملخص فارغًا، وبالتالي لا يتم إرساله للمستخدمين.
لا أعرف كيف يتم إنشاء الملخص. لا أعرف ما إذا كان يأخذ في الاعتبار الفئات التي يتجاهلها المستخدم، أو أشياء من هذا القبيل.
أفترض أن المستخدمين لديك لن يتلقوا الملخص إذا أرسلته يدويًا عبر وحدة تحكم Rails؟
user = User.find_by(username: 'user-name')
Jobs.enqueue(:user_email, type: :digest, user_id: user.id)
بعد ثوانٍ قليلة من تشغيل هذا، يجب أن ترى وظائف Sidekiq المعالجة تزداد بمقدار 1، ولكن إذا كان لديك منتدى كبير فقد تكون هناك الكثير من وظائف Sidekiq في أي وقت، لذلك قد يكون من الصعب معرفة ما إذا كانت قد زادت.
يمكنك استخدام زر Live Poll لرؤيته في الوقت الفعلي:
من اختباري، إذا قمت بتشغيل نص Rails البرمجي لإرسال الملخص إلى مستخدم، ولكن الملخص فارغ:
لأن المستخدم استلمه سابقًا
أو قام بتعطيل ملخصات البريد الإلكتروني في ملفه الشخصي
إلخ…
فإن عدد وظائف Sidekiq المعالجة سيزداد بمقدار واحد، ولكن لن يتم إرسال أي بريد إلكتروني، ولن يكون هناك إدخال جديد في /admin/email/sent.
ربما يمكنك تسجيل وظائف Sidekiq المعالجة لمعرفة ما إذا كانت هناك أي أدلة في ذلك. لقد بحثت قليلاً، لكنني لست متأكدًا مما إذا كان يسجل الوظائف التي تمت معالجتها افتراضيًا.
أعتقد أن هناك تفسيرًا منطقيًا وجيدًا لسبب عدم تلقي المستخدمين للملخص. قد تتم معالجة الوظيفة، ولكن قد يكون الملخص فارغًا، مما قد يفسر عدم وجود أثر له.
سأتحقق جيدًا من إعدادات جميع المستخدمين المعنيين مرة أخرى، ومستويات الإشعارات الخاصة بهم، والفئات التي يتتبعونها وأشياء من هذا القبيل.
سيكون من السهل جدًا إضافة مخرجات تصحيح الأخطاء إلى آلية إرسال الملخص.
هل لديك موقع تجريبي متاح، حيث يمكنك الاختبار دون التأثير على نسخة الإنتاج الخاصة بك؟
هناك، يمكنك اختبار ما إذا كانت المهلات الزمنية في الاستعلامات تحدث، على سبيل المثال. بشكل ساذج، أتوقع أن تظهر المهلات الزمنية في السجلات.
يمكنك أيضًا تحسين الاستعلام الذي يبني الأشخاص المستهدفين بإخراج إحصائي.
كل هذا ليس صعبًا في بيئة معزولة ولكنه قد يكون خطيرًا في بيئة الإنتاج.