إعادة الخبز بعد تغيير CDN فاتته المشاركات القديمة

أبلغني مسؤول Discourse مؤخرًا أنني يجب أن أفكر في استخدام شبكة توصيل محتوى (CDN) بدلاً من تقديم الملفات مباشرة من S3. كنت قد فكرت في ذلك سابقًا، لكن التكلفة بدت مرتفعة وغير ضرورية لمجتمعنا الصغير. والآن أرى أن التكلفة أقل بكثير، لذا قمت بإعداده. أنشأت نقطة توزيع Cloudfront على الدلو (bucket) الموجود، ثم أضفت عنوان URL الخاص بها إلى Discourse. بعد ذلك، قمت بإعادة تشغيل عملية إعادة بناء جميع المنشورات (full rebake).

تم تشغيل عملية إعادة البناء وإكمالها دون مشاكل. إنشاء منشورات جديدة يعمل بشكل جيد ويستخدم CDN. المنشورات الأحدث من عام 2018 تقريبًا (لم أتحقق من تاريخ القطع الدقيق) تم تحديثها بشكل صحيح لتشير إلى CDN. لكن المنشورات من عام 2017 وما قبله لا تبدو وكأنها خضعت لعملية إعادة البناء فعليًا. لا تزال عناوين URL الخاصة بها تشير مباشرة إلى دلو S3. أود إعادة بناء هذه المنشورات بشكل صحيح حتى أتمكن من تعطيل الوصول العام إلى دلو S3 بثقة بأن ذلك لن يكسر أي شيء.

لست متأكدًا مما يمكنني فعله بعد ذلك؟ هل لديك أي أفكار؟ شكرًا لك.

انتظر لحظة. أعتقد أنني قد أعرف المشكلة، لكنني أحتاج فقط إلى التأكد.

عند تشغيل rake posts:rebake، هل يعيد بناء جميع المنشورات فورًا أم يقوم فقط بوضع وظائف في قائمة Sidekiq لتنفيذ إعادة البناء فعليًا؟ لاحظت أن لدي الآن كومة ضخمة من Jobs::PullHotlinkedImages في قائمة الانتظار، وهو أمر منطقي تمامًا. إذا كانت هناك منشورات لا تزال بحاجة لإعادة البناء بعد تفريغ القائمة، فإني أعتقد أن لدي مشكلة. وإلا، فكل شيء على ما يرام.

نعم، هذا صحيح — إنها عملية خلفية يجب أن تسير بترتيب من المنشورات الأحدث إلى الأقدم، بحيث تتم معالجة المنشورات الأحدث أولاً، ثم قائمة الانتظار الضخمة للمنشورات الأقدم.