मेरे पास एरलांग में एक सर्वर अनुप्रयोग है। इसमें मेरे पास एक मेनेसिया टेबल है जो फ़ोटो पर कुछ जानकारी संग्रहीत करता है। "सब कुछ प्रक्रिया" की भावना में मैंने उस तालिका को gen_server
मॉड्यूल में लपेटने का निर्णय लिया है, ताकि gen_server
मॉड्यूल केवल एकमात्र ऐसा है जो सीधे तालिका तक पहुंचता है। क्वेरी करना और उस तालिका में जानकारी जोड़ना उस प्रक्रिया को संदेश भेजकर (जिसमें एक पंजीकृत नाम है)। विचार यह है कि उस तालिका से जानकारी पूछताछ करने वाली कई क्लाइंट प्रक्रियाएं होंगी।एक मेनेसिया टेबल को समाहित करने के लिए gen_server का उपयोग करना?
यह ठीक काम करता है, लेकिन gen_server
मॉड्यूल में कोई स्थिति नहीं है। यह सब कुछ मैनेसिया टेबल में संग्रहीत है। तो, मुझे आश्चर्य है कि gen_server
शायद उस तालिका को encapsulating के लिए सबसे अच्छा मॉडल नहीं है?
क्या मुझे बस इसे एक प्रक्रिया नहीं करना चाहिए, और इसके बजाय उस मॉड्यूल के कार्यों के माध्यम से केवल तालिका को समाहित करना चाहिए? उस मॉड्यूल में एक बग के मामले में, कॉलिंग प्रक्रिया को क्रैश करने का कारण बनता है, जो मुझे लगता है कि बेहतर हो सकता है, क्योंकि यह केवल एक क्लाइंट को प्रभावित करेगा, जैसा कि अब के विपरीत है, जब यह gen_server
प्रक्रिया का कारण बनता है क्रैश, तालिका तक पहुंच के बिना सभी को छोड़कर ( तक पर्यवेक्षक इसे पुनरारंभ करता है)।
किसी भी इनपुट की बहुत सराहना की जाती है।