2009-08-01 16 views
6

के लिए प्लगइन आर्किटेक्चर मैं एक सीएमएस पर काम कर रहा हूं और कुछ खातों के लिए कस्टम सीमाएं प्रदान करने की क्षमता चाहता था। कस्टम कोड के साथ एक प्लगइन की तरह जो केवल उपलब्ध है या केवल उस खाते द्वारा उपयोग किया जाता है। ये कस्टम सीमाएं किसी खाते की व्यावसायिक आवश्यकताओं के लिए विशिष्ट होंगी और शायद यह संभावना नहीं है कि किसी अन्य खाते की आवश्यकता होगी, लेकिन हो सकता है। क्या कोई तरीका है कि यह पूरा किया जा सकता है और पूरे ऐप को पुनरारंभ किए बिना लोड किया जा सकता है, जिससे अन्य खातों के लिए डाउनटाइम बना दिया जा सकता है?रेल सीएमएस

उत्तर

2

प्रति-क्लाइंट प्लग इन कोड के संदर्भ में, आप एक डाटा मॉडल में कोड संग्रहीत कर सकती है और उसके बाद eval() कोड गतिशील रूप से यह निष्पादित करने के लिए। (निश्चित रूप से आप यह सुनिश्चित करने के लिए अद्यतन पर कुछ गंभीर सैनिटी-चेकिंग/स्क्रबिंग करना चाहते हैं ताकि कोड में दुर्भावनापूर्ण कॉल न हों)। एक और तरीका कस्टम टैग लाइब्रेरी विकसित करना हो सकता है, जो कि रेडियंट सीएमएस डेवलपर्स के निर्माण के आधार पर बहुत कुछ है ... और फिर अपने उपयोगकर्ताओं को प्रदान किए गए टैग का उपयोग करके अपने व्यवहार को "प्रोग्राम" दें। इससे आपको कम लचीलापन की कीमत पर अधिक नियंत्रण और बेहतर सुरक्षा मिलती है।

डाउनटाइम प्रश्न के संदर्भ में, यदि आप आधुनिक रेल परिनियोजन दृष्टिकोण का उपयोग कर रहे हैं तो मुझे नहीं लगता कि यह एक मुद्दा होना चाहिए। उपरोक्त eval() दृष्टिकोण को पुनरारंभ करने की आवश्यकता नहीं है (जब तक कि आपके कस्टम कोड को उन पुस्तकालयों पर "शामिल नहीं है ..." जो कि अंतिम बूट के समय स्थापित नहीं हैं - लेकिन इन पुस्तकालयों को स्थापित करना भी "बैंड से बाहर है "समस्या जो आपको हल करने की आवश्यकता होगी।

यात्री आपको रीस्टार्ट.txt फ़ाइल देता है जिसे आप ताज़ा करने के लिए स्पर्श कर सकते हैं। इसी प्रकार मोंगेल (जैसे देखा गया) के लिए व्यंजन हैं जो आपको अपने मोंगेल स्टैक को क्रमशः पुनरारंभ करने की अनुमति देते हैं डाउनटाइम से बचने के लिए। अगर मैं आप थे, तो मैं इन दोनों मुद्दों को मानसिक रूप से अलग कर दूंगा, क्योंकि दोनों के बीच निर्भरताएं बहुत अच्छी नहीं हैं। उम्मीद है कि इससे मदद मिलती है।

+0

मुझे लगता है कि यह एक बहुत अच्छा समाधान है (भले ही eval() बहुत डरावना) क्योंकि मैं वह हूं जो कोड विकसित करेगा, उपयोगकर्ताओं को नहीं। बेशक अगर कोई द्रव्यमान था छील मॉड्यूल तो मैं इसे सामान्य के रूप में बना सकता हूं और इसे एक्सेस प्रतिबंधित कर सकता हूं। विशिष्ट उदाहरण प्रति-खाता अनुकूलन के लिए है, इसलिए मुझे लगता है कि यह सबसे अच्छा काम करेगा। – bwizzy

1

मैंने एक सीएमएस बनाया और इसके लिए प्लगइन समर्थन जोड़ा। सबसे अच्छी बात यह है कि आप यह कर सकते हैं कि यह सभी डेटाबेस संचालित है, प्लगइन सभी के लिए तकनीकी रूप से मौजूद है, लेकिन आप इसका उपयोग केवल तभी कर सकते हैं जब आपने इसे "खरीदा" या इसे चालू करने का कोई अन्य तरीका .. जो है वास्तव में सिर्फ एक डीबी रिकॉर्ड।

यह 0 डाउनटाइम होगा। :) फिर फिर, मुझे नहीं पता कि आपका बाकी सेटअप कैसा दिखता है। मुझे लगता है कि आपका समाधान आपके सीएमएस सिस्टम डिज़ाइन के लिए विशेष रूप से तैयार किया जा रहा है।

0

यह डाउनटाइम वास्तव में कब तक होगा? मेरा मतलब है कि माइग्रेशन चलाना और सामान एक ऐसी प्रणाली के लिए दर्द होगा जो किसी भी टॉम डिक या हैरी को प्लगइन अपलोड करने की अनुमति देता है। आपको यह सत्यापित करना होगा कि माइग्रेशन सही तरीके से स्थापित किए गए थे। यदि आपको वह 'फैंसी' नहीं मिल रही है और बस उन्हें जेएस में कुछ 'साफ' करने की अनुमति दें, तो मुझे लगता है कि यह यात्री को पुनरारंभ करने का सवाल है, जो कि है क्या 5 सेकेंड?

मैं अन्य 'मशहूर' सीएमएस को चमकदार या कुछ ऐसा देखने के लिए देखता हूं जो व्यक्तिगत रूप से करते हैं या नहीं। सौभाग्य।

0

मैं नहीं हूं कि यह वही है जो आप प्राप्त करने की कोशिश कर रहे हैं, लेकिन क्या आपने पैनकेक की जांच की है?

पैनकेक एक उपकरण & ढांचा है जो आपको रैक-आधारित वेबपैक्स को ढेर और ढीले ढंग से जोड़ने देता है।

http://www.rubyinside.com/pancake-rack-webapps-stacking-2863.html

संबंधित मुद्दे