ماذا أفعل بعد الاستعادة بدون صور مصغرة؟ (صور مفقودة، صور رمزية)

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

الآن، كما هو متوقع، لدي الكثير من الصور المفقودة، وبشكل غير متوقع، أيضًا الصور الرمزية المفقودة. أدت عملية البحث إلى الكثير من المعلومات المتضاربة. تقول بعض المنشورات إنني بحاجة إلى إعادة معالجة كل شيء، مع وجود طرق مختلفة للقيام بذلك. بينما يقول آخرون إن Sidekiq سيقوم بذلك تلقائيًا. لا يبدو أن هناك إجابة حاسمة وحالية لهذا الأمر يمكنني العثور عليها. لا يبدو أن تشغيل مهام Sidekiq يحقق الكثير، وحتى وحدة تحكم Rails لا تتعرف على الأمر ‘rebake’.

لا أعرف ما يجب فعله. شيء ما؟ لا شيء؟ أنا في حيرة.

سيتم إعادة إنشاء الصور الرمزية والصغرى بواسطة مهام في الخلفية.

سيتم إنشاء الصور الرمزية بعد وقت قصير من الاستعادة. يجب أن ترى عددًا كبيرًا من مهام “create_avatar_thumbnails” في Sidekiq ما لم تكن قد اكتملت بالفعل.

سيستغرق إنشاء الصور المصغرة للصور وقتًا أطول بكثير، لأن ذلك يتم على دفعات على مدار فترة زمنية طويلة. يمكنك تسريع العملية بتشغيل مهمة rake:

cd /var/discourse
./launcher enter app

rake posts:rebake_uncooked_posts

شكرًا لك! هل من المتوقع أن تتصرف المنشورات الجديدة وعمليات رفع الصور الشخصية بشكل غير متوقع خلال هذه الفترة الانتقالية؟ ستظهر بعض صور المنشورات والتضمينات فورًا بينما لا تظهر أخرى، ولا يبدو أن هناك أي منطق واضح لما سيُظهر عملًا وما لن يعمل.

على سبيل المثال، لن تظهر هذه الصورة في منشور جديد قمت بإنشائه للتو في منتداك:

ولكن هذه ستظهر:

السبب هو أبعاد الصور. تتطلب الصورة الأولى إنشاء صور مصغرة، بينما لا تتطلب الصورة الثانية ذلك. قد يتأخر إنشاء الصور المصغرة للمشاركات الجديدة إذا كان خادمك مشغولاً بالكامل حاليًا بإعادة إنشاء الصور المصغرة القديمة وصور المستخدمين. يمكنك الاطلاع على طابور Sidekiq لمعرفة ما يحدث.

هل يوجد ما يعادل rake posts:rebake لاستعادة الصور الرمزية (avatars)؟ هذا ما انتهى بي الأمر إلى فعله لإصلاح صور المنشورات، لكن معظم الصور الرمزية لا تزال مفقودة. لقد حاولت تشغيل CreateMissingAvatars في Sidekiq، وقد استمر لمدة 5-10 ثوانٍ، لكن لا شيء يتغير.

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

الأمر لفرض استعادة جميع الصور المصغرة المفقودة وأحجام الصور المحسّنة للمشاركات، والصور الشخصية، وما إلى ذلك هو:

rake uploads:regenerate_missing_optimized

إذا كان لديك عدد كبير من الصور، فقد يستغرق هذا الأمر وقتًا طويلاً جدًا. على نظام يحتوي على 4 معالجات وذاكرة عشوائية 8 جيجابايت، استغرق الأمر 32 ساعة لاستعادة جميع الصور في منتدى يحتوي على 29 جيجابايت من التحميلات الأصلية.

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

إنها مهمة PeriodicalUpdates. يمكنك العثور عليها في /sidekiq/scheduler