मेरे रेल 4.1 अनुप्रयोग एक बैकएंड नौकरियों के लिए SSH के माध्यम से एक दूसरे, गैर प्राथमिक सर्वर से कनेक्ट। नतीजतन, जब रेल ऐप प्रतिदिन पुन: प्रारंभ होता है, तो एसएसएच कनेक्शन को लाइव/अप होना चाहिए (बल्कि दूसरा, गैर-प्राथमिक सर्वर लाइव/अप करने की आवश्यकता है), अन्यथा ऐप क्रैश हो जाता है। करने के लिए डिफ़ॉल्ट रूप से उत्सुक लोड हो रहा है production.rb
(config.eager_load = true
) में सही पर सेट किया जा रहा है इस वजह से है।उत्पादन.आरबी में eager_load को अक्षम करने का प्रदर्शन प्रभाव क्या है?
मैं उत्सुक भार को अक्षम करके इस निर्भरता को तोड़ने के लिए परीक्षा हूँ, लेकिन मैं प्रदर्शन प्रभाव पर अधिक से अधिक जानकारी प्राप्त करने में सक्षम नहीं हूँ। तो, मेरे सवाल कर रहे हैं ... eager_load
false
पर सेट है
1) यदि, कि सरल नीचे एप्लिकेशन की स्टार्टअप समय धीमी हो जाएगी, या एप्लिकेशन बेसब्री से संसाधनों पहली बार वे मारा लोड हो जाएंगे?
3) यदि eager_load
बस को बंद कर दिया है, क्या डिग्री होगा इस प्रभाव एप्लिकेशन (अधिक व्यक्तिपरक सवाल) बंद प्रदर्शन?
2) मॉडल है कि SSH कनेक्शन प्रदर्शन करती फ़ोल्डर app\models\legacy
के अधीन हैं। eager_load
को गलत करने के बजाय, क्या उस फ़ोल्डर को उत्सुक लोड किए गए संसाधनों से बाहर रखा जा सकता है? यदि हां, तो कैसे? मेरा मानना है कि मुझे config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**/}')]
संपादित करने की आवश्यकता होगी लेकिन पूरी तरह से सुनिश्चित नहीं है।
production.rb:
# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both thread web servers
# and those relying on copy on write to perform better.
# Rake tasks automatically ignore this option for performance.
config.eager_load = true
उत्सुक लोडिंग को बदलने के बजाय, क्या आप कक्षा को बदल नहीं सकते हैं इसलिए वर्ग को लोड/पार्सिंग सीधे एसएसएच तक नहीं पहुंचता है? या इसे और अधिक मजबूत बनाओ? – nathanvda