وضع الاسم المستعار باش لـ IRB؟
-
26-09-2019 - |
سؤال
لذلك كل صباح لتمهيد الخادم الخاص بي ، أحتاج إلى القيام بالمهام التالية ..
>> sunspot-solr stop
>> sunspot-solr start
>> script/console
>> Organization.reindex
>> Event.reindex
>> Deal.reindex
>> exit
>> script/server
هل هناك أي طريقة يمكنني من خلالها إجراء اختصار في ~/.profile كمستعار لأداء كل هذا بالنسبة لي دون أن أكتبه كل يوم؟
مثل هذا رغم أنه لا يعمل؟
alias blam='cur && sunspot-solr stop && sunspot-solr start && script/console && Organization.reindex && Event.reindex && Deal.reindex && exit && script/server'
المحلول
ربما هذا سوف يخفف بعض الألم؟
#Rakefile
desc "Reindex the organizations, events, and deals Solr indexes."
task :reindex => :environment do
Organization.reindex
Event.reindex
Deal.reindex
end
ثم كل صباح يركض
> sunspot-solr stop
> sunspot-solr start
> rake reindex
> script/server
نصائح أخرى
هذا هو أول منشور لي Stackoverflow وهو سؤال قديم ، لكنني شعرت أنه يمكنني المساهمة بطريقة ما: D إعادة بناء مؤشر SOLR بشكل دوري هو مهمة باهظة الثمن ، يجب عليك تجنب القيام بأشياء مثل هذه في الإنتاج! ما تبحث عنه يمكن تحقيقه على أفضل وجه:
1 - قم بتحرير sunspot.yml وأضف الخط
auto_commit_after_request = true
هذا سيخبر Sunspot بتحديث الفهرس كل مره يتم حفظ إدخال نموذج جديد (أو حذفه). سيؤدي ذلك إلى تحديث الفهرس الخاص بك ولكن يمكن أن يكون مكلفًا.
2 - إنشاء مهمة أشعل النار (يمكن تشغيلها مع cron في عامل تأخير) مثل هذا
task :update_index => :environment do
Sunspot.commit_if_dirty
end
هذا أقل تكلفة بكثير من القيام بالالتزام بعد كل تحديث للنموذج ، ولكن ضع في اعتبارك أن هذا يقدم مشكلة الاتساق النهائي في الفهرس الخاص بك ، وهو أمر جيد بالنسبة للإضافة ولكن يمكن أن يكون سيئًا للحذف: سيولد إدخالات يتيمة في فهرسك . هذه أيضًا مشكلة في الطريقة الثالثة لحل هذه المشكلة ->
3 - تحرير ملف solrconfig.xml الخاص بك وضبط ملف autoCommit
ميزة مع maxTime
فاصل تعسفي بين الالتزامات (تذكر أن تستخدم أوقات في الميلي ثانية). 5 دقائق ستكون لطيفة لمعظم التطبيقات ، ولكن يجب عليك اختبار هذا بنفسك.
أتمنى أن يساعدك هذا!