سؤال

أنا أتساءل عما إذا كان أي شخص لديه أي مواد إضافية أو وصفات Capistrano التي سوف "تسخينها مسبقا" ذاكرة التخزين المؤقت للصفحة لتطبيق القضبان عن طريق بناء جميع الصفحة التي تم تخزينها مؤقتا HTML في الوقت الذي يتم فيه إجراء النشر، أو محليا قبل أن يحدث النشر.

لدي بعض المواقع الثابتة في الغالب لا تتغير كثيرا، وسيتم تشغيلها بشكل أسرع إذا كتب HTML بالفعل، بدلا من طلب زائر واحد لضرب الموقع.

بدلا من إنشاء هذا بنفسي (يبدو سهلا ولكن أولوية منخفضة) هل موجود بالفعل؟

هل كانت مفيدة؟

المحلول

لقد وضعت اختبارات التكامل التي تؤكد جميع المجالات الرئيسية للموقع المتاحة (بضع مئات من الصفحات في المجموع). إنهم لا يفعلون أي شيء يغير البيانات - فقط سحب الصفحات والأشكال.

لا أركزها حاليا عندما أقوم بنشر مثيل الإنتاج الخاص بي، لكنك تذكرها الآن - قد تكون في الواقع فكرة جيدة.

سيكون بديلا آخر لسحب كل صفحة تظهر في موقع الويب الخاص بك (إذا كان لديك واحدة، فمن المحتمل أنك يجب). يجب أن يكون من السهل حقا كتابة نص جوهرة / أشعل النار يفعل ذلك.

نصائح أخرى

يمكنك استخدام wget أو برنامج آخر إلى العنكبوت الموقع. في الواقع، يتم ذكر هذا النوع من السيناريو كواحد من الاستخدامات في صفحةه اليدوية:

يخبر هذا الخيار WGET لحذف كل ملفات تنزيله، بعد القيام بذلك. من المفيد أن يتم جلب الصفحات الشائعة مسبقا من خلال وكيل، على سبيل المثال:

   wget -r -nd --delete-after http://whatever.com/~popular/page/

الخيار -r هو استرداد متكرر، و -ND لعدم إنشاء دلائل.

يمكنني استخدام مهمة أشعل النار تبدو وكأنها لتحديث صفحتي المخبأ خريطة الموقع كل ليلة:

 require 'action_controller/integration'
 ActionController::Base::expire_page("/sitemap.xml")   
 app = ActionController::Integration::Session.new
 app.host = "notexample.com"
 app.get("/sitemap.xml")

يرى http://gist.github.com/122738.

التحميل المسبق بهذه الطريقة - عموما، مع بدء عمل كرون في الساعة 10 مساء بالمحيط الهادئ وإنهاء الساعة 6 صباحا - هو وسيلة لطيفة لتحميل موازنة موقعك.

تفحص ال Spider_test Rails Plugin. للحصول على طريقة بسيطة للقيام بذلك في الاختبار.

إذا كنت ستستخدم WGET أعلاه، فأضف - level =، - No-pential، - With = ثواني و - WaitEretry = خيارات ثانوية لخنق الحمل الخاص بك، ويمكنك أيضا تسجيل الدخول والتقاط ردود الرأس للتشخيص أو التحليل (تغيير المسار من / TMP إذا رغبت في ذلك):

wget -r --level=5 --no-parent --delete-after \
  --wait=2 --waitretry=10  \
  --server-response        \
  --append-output=/tmp/spidering-`date "+%Y%m%d"`.log
  'http://whatever.com/~popular/page/'
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top