क्रैश प्रक्रिया को पुनरारंभ करते समय राज्य को बनाए रखने का एक अच्छा तरीका क्या है?क्रैश के बाद मैं प्रक्रिया स्थिति को कैसे पुनर्स्थापित कर सकता हूं?
मेरे पास एक ओटीपी एप्लिकेशन में पर्यवेक्षक है जो कई "सबसिस्टम" gen_servers देखता है।
उदाहरण के लिए, एक "मौसम" उपप्रणाली है जो प्रत्येक 15 मिनट में एक नया मौसम राज्य उत्पन्न करती है और मौसम की वर्तमान स्थिति के लिए प्रश्नों को संभालती है। (नींबू पानी के स्टैंड गेम को सोचें)
यदि वह gen_server क्रैश हो जाता है, तो मैं इसे पुनरारंभ करना चाहता हूं, लेकिन इसे हालिया मौसम स्थिति के साथ पुनरारंभ किया जाना चाहिए, कुछ मनमानी स्थिति init() में हार्डकोड नहीं किया जाना चाहिए। यह सिमुलेशन राज्य के लिए अचानक "गड़गड़ाहट तूफान" से दुर्घटना के कारण "सुखद और उग्र" तक जाने के लिए समझ में नहीं आता।
मैं अतिरिक्त जटिलता के कारण हर अद्यतन के बाद राज्य को स्टोर करने के लिए मेनेसिया या ईटीएस का उपयोग करने में संकोच करता हूं; क्या कोई आसान तरीका है?
पर्यवेक्षक को यथासंभव तर्क जितना कम होना चाहिए और केवल पुनरारंभ करने के लिए ज़िम्मेदार होना चाहिए। उस तर्क में एक भी बग दुर्घटनाग्रस्त होने के लिए पूरी उप-चीज का कारण बन सकती है। –