أود طلب إعداد واحد أو اثنين للموقع يتيحان لنا تكوين “نافذة زمنية” و"أيام الملخصات" عند وضع مهام الملخصات في قائمة الانتظار.
السبب وراء هذا الطلب هو أن معظم المواقع، بما في موقعنا، تخدم منطقة جغرافية مهيمنة للمستخدمين؛ على سبيل المثال، موقعنا يستهدف الولايات المتحدة، بينما قد تستهدف مواقع أخرى كوريا أو البرازيل أو ألمانيا أو أستراليا أو أي منطقة أخرى في العالم.
سيكون إرسال رسائل البريد الإلكتروني للملخصات أكثر كفاءة إذا تم إرسالها خلال ساعات وأيام العمل العادية (للمجموعة الرئيسية من المستخدمين). فكثير من المواقع تدفع مقابل خدمات البريد الجماعي مثل MailGun أو SendGrid لإرسال رسائل الملخصات؛ وبالتالي، فإن وصول رسائل الملخصات إلى صناديق الوارد للأعضاء “حوالي” الساعة 10 صباحًا يوم الاثنين أفضل بكثير من وصولها الساعة 3 صباحًا يوم السبت.
هذه المهام تُوضع في قائمة الانتظار، وبالتالي فإن وجود متغيرين تكوينيين مثل “نافذة وقت طابور الملخصات” و**“أيام مسموح بها لطابور الملخصات”** سيجعل الأموال المنفقة على إرسال رسائل البريد الإلكتروني للملخصات أكثر كفاءة.
لقد بحثت في النواة على GitHub ولم أجد أي طريقة لتحديد هذه المعلمات المهمة. هل فاتني شيء؟
بشكل افتراضي، سيرسل Discourse ملخص البريد الإلكتروني في نفس الساعة التي يكمل فيها المستخدم فترة خمول مدتها 7 أيام، مما يعني أن البريد الإلكتروني سيتوافق مع نافذة كان فيها المستخدم نشطًا على الموقع. وهذا أمر رائع لأنه سيتكيف تلقائيًا مع كل مستخدم ومنطقة زمنية.
مشكلة شائعة جدًا تتعلق بالاستيراد، حيث ينسى المسؤولون تعطيل الملخصات للمستخدمين المستوردين أو ينسون استيراد ساعة آخر نشاط في البيانات المستوردة، فيصبح كل شيء مضبوطًا على منتصف الليل.
هههه! لقد أصبت في صلب مشكلتنا تمامًا! فقد كان نشاط المستخدمين المستوردين لدينا مضبوطًا على وقت استيرادهم إلى Discourse من موقع vB القديم لدينا.
في حالتنا، لم تقم نصوص Discourse التي استخدمناها بذلك؛ ولا يمكننا أن “ننسى” فعل شيء لم نكن نعرف عنه شيئًا من الأساس، هههه.
كما يقولون: البصيرة تأتي بعد وقوع الحدث.
لا أعتقد أن معظم المستخدمين الذين ينتقلون إلى Discourse لأول مرة من منتدى قديم يمكنهم أن “ينسوا” ذلك “قبل أن يعرفوا تفاصيل كيفية عمل ملخصات Discourse”
ليست مشكلة كبيرة. لكن كما تقول أنت نفسك:
لذا، فإن الميزة التي أطلبها ستساعد في التخفيف من هذه المشكلة للمنتديات التي تم ترحيلها، وتلك “الأرواح غير المدعومة” المنتشرة في الفضاء الإلكتروني والتي تكون عادةً “وحدها” عند ترحيل منتدى إلى Discourse
بما أنني أتوقع أن هذه “المشكلة الشائعة” لن يتم معالجتها، هل يمكنك من فضلك نشر رابط للكود في المستودع حيث يمكنني كتابة إضافة لتطبيق حشو (monkey patch) لهذه المشكلة بالنسبة لنا، أرواح الترحيل الضائعة، الذين “نسوا فعل شيء” قبل أن “نعرف أننا بحاجة لفعله” أبدًا؟
أو ربما لا بأس، وبدلاً من تطبيق رقعة على الكود، سأكتب سكريبت بلغة Ruby لتغيير وقت “آخر نشاط” للمستخدمين الذين تم نقلهم إلى وقت خلال ساعات العمل العادية (فقط أضف 10 ساعات إلى منتصف الليل، وقد تم!)
لقد قمت بتحديث جميع هؤلاء المستخدمين القدامى لجعل تواريخ/أوقات last_seen_at الخاصة بهم تتوافق مع الساعة 10 صباحًا بتوقيت شرق الولايات المتحدة.
بناءً على فهمي لردك، سيؤدي ذلك إلى وضع رسائل البريد الإلكتروني للملخص في قائمة الانتظار لتُرسَل في ذلك الوقت تقريبًا من صباح اليوم، أي الساعة 10 صباحًا.
صحيح؟
تحديث:
هههه. يبدو أن هذا لا يعمل. بعد ضبط تواريخ-أوقات last_seen_at على الساعة 10 صباحًا بتوقيت شرق الولايات المتحدة، بدأ Sidekiq في وضع الملخصات في قائمة الانتظار الآن، في وقت متأخر قليلاً عن منتصف الليل بتوقيت شرق الولايات المتحدة؛ كما تُظهر سجلات البريد الإلكتروني المرسلة من لوحة الإدارة إرسال الملخصات حاليًا أيضًا.
يبدو أن هذا “محاذاة النشاط الأخير” السحري إلى وقت إرسال الملخصات لا يعمل كما هو موصوف من جهتي.