मैं गो में एक साधारण जीएई ऐप बनाना चाहता हूं जो उपयोगकर्ताओं को वोट देने और उनके उत्तरों को दो तरीकों से संग्रहीत करने देगा। पहला तरीका कच्चा डेटा होगा ("एक्स के लिए वोट दिया गया डेटाबेस स्टोर"), दूसरा उन वोटों की एक चल रही गिनती होगी ("एक्स के लिए 12 वोट, वाई के लिए 10 वोट")। उन दोनों मूल्यों को एक ही समय में कई लोगों द्वारा एक्सेस किए जा रहे ऐप के साथ स्टोर करने का एक प्रभावी तरीका क्या है? अगर मैं डेटास्टोर से डेटा पुनर्प्राप्त करता हूं, इसे बदलता हूं, और इसे एक उदाहरण के लिए वापस सहेजता हूं, तो दूसरा समानांतर में ऐसा करना चाहता है, और मुझे यकीन नहीं है कि अंतिम परिणाम सही होगा या नहीं।

0
ThePiachu 18 अक्टूबर 2011, 13:24

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा लगता है कि ऐसा करने का एक अच्छा तरीका यह है कि सभी वोट ईवेंट को अलग-अलग संस्थाओं ("वोट फॉर एक्स" तरीके से) के रूप में संग्रहीत करें और कार्य कतार पुनर्गणना के लिए ("X के लिए 12 वोट, Y के लिए 10 वोट"), इसलिए पुनर्गणना ऑफ़लाइन की जाती है और क्रमिक रूप से (बिना किसी दौड़ और अन्य समवर्ती मुद्दों के)। फिर आपको रिकैल्क कार्य को हर एक बार कतार में लगाना होगा ताकि परिणाम अपडेट हो जाएं।

कार्य कतार मौजूदा नाम के समान नाम के साथ किसी अन्य कार्य को जोड़ने की अनुमति नहीं देती है, लेकिन यह जांचने की अनुमति नहीं देती है कि कोई विशिष्ट कार्य पहले से ही कतार में है, इसलिए शायद कतार में समान नाम वाले कार्य को जोड़ने का प्रयास करना पर्याप्त होगा यह सुनिश्चित करने के लिए कि एकाधिक पुनर्गणना कार्य नहीं हैं।

एक अन्य तरीका यह होगा कि परिणामों की पुनर्गणना करने के लिए एक इनपुट चैनल से प्रहार की प्रतीक्षा कर रहे गोरोइन का उपयोग किया जाए। मैंने ऐप इंजन पर ऐसे गोरोइन नहीं चलाए हैं, इसलिए मुझे इस दृष्टिकोण के सामान्य व्यवहार के बारे में निश्चित नहीं है।

1
macbirdie 18 अक्टूबर 2011, 14:41