2008-11-26 18 views
32

मैंने हाल ही में कुछ डेवलपर्स को यह कहते हुए सुना है कि जब कुछ बदल गया है और फिर एक कार्य चलाते हैं, तो यह निर्धारित करने के लिए कि वे कुछ बदलते हैं और फिर एक कार्य चलाते हैं, वे केवल मतदान सामग्री (डेटाबेस, फाइल इत्यादि) हैं।मतदान के साथ क्या गलत है?

मैं वास्तव में इस विचार के खिलाफ हूं और महसूस करता हूं कि Remoting, WCF आदि जैसी उपलब्ध तकनीक का उपयोग मतदान से कहीं बेहतर होगा।

हालांकि, मैं अन्य कारणों की पहचान करना चाहता हूं कि अन्य लोग दूसरे पर एक दृष्टिकोण क्यों पसंद करते हैं और अधिक महत्वपूर्ण बात यह है कि मैं दूसरों को यह कैसे समझा सकता हूं कि इस दिन और उम्र में मतदान गलत है?

+0

एफवाईआई: रिमोटिंग और डब्ल्यूसीएफ मतदान करते हैं। –

+0

एक निश्चित डिग्री हां, लेकिन उसी तरह से नहीं, जिसमें कुछ डेवलपर्स स्पष्टीकरण मतदान का उपयोग करते हैं यानी प्रत्येक मिनट डेटाबेस को मतदान करते हैं। – HAdes

+0

मेरे पास ऐसी ही स्थिति है जहां अद्यतन फ़ाइल प्राप्त करने के लिए एकाधिक एफटीपी स्थानों पर कई बार मतदान कर रहा है, स्थिति से निपटने का सबसे अच्छा तरीका क्या होगा? – Rachel

उत्तर

42

मतदान "गलत" नहीं है।

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

यदि आप तत्काल अधिसूचना से कम चिंतित हैं तो आप चुनाव के बीच अंतराल बढ़ा सकते हैं, और यह भी अच्छी तरह से काम कर सकता है, लेकिन सही अंतराल चुनना मुश्किल हो सकता है। बहुत लंबा और आप महत्वपूर्ण परिवर्तनों को याद कर सकते हैं, बहुत कम और आप पहली विधि की समस्याओं पर वापस आ गए हैं।

विकल्प, जैसे इंटरप्ट या संदेश इत्यादि इन स्थितियों में बेहतर समझौता प्रदान कर सकते हैं। आपको यथासंभव जल्द से जल्द बदलाव की अधिसूचना दी जाती है, लेकिन यह देरी कुछ ऐसा नहीं है जिसे आप नियंत्रित करते हैं, यह राज्य में बदलावों को पारित करने के बारे में समय पर घटक पर निर्भर करता है।

मतदान के साथ "गलत" क्या है?

  • यह संसाधन होगिंग हो सकता है।
  • यह सीमित हो सकता है (विशेष रूप से यदि आपके पास कई चीजें हैं जिन्हें आप/मतदान के बारे में जानना चाहते हैं)।
  • यह अधिक हो सकता है।

लेकिन ...

  • यह स्वाभाविक गलत नहीं है।
  • यह बहुत प्रभावी हो सकता है।
  • यह बहुत आसान है।
+1

"इसका मतलब है कि आप जितनी जल्दी हो सके अधिसूचित हो जाते हैं कि कुछ अलग है।" क्या मतदान इस तरह के मतदान पर अंतराल पर निर्भर नहीं होगा और जब भी होता है तो आप कितने करीब होते हैं? – Svish

+5

ऐसी कुछ स्थितियां हैं जहां मतदान संदेश से अधिक कुशल हो सकता है। यह "घटनाओं" की संख्या और आवृत्ति पर निर्भर करता है। कुछ हद तक प्रत्याशित उदाहरण के रूप में, एक थर्मामीटर पर विचार करें जो कुछ तापमान को एक बार 100 बार मापता है और एक अद्यतन भेजता है। यदि आप प्रत्येक अद्यतन के लिए अलग संदेश का उपयोग करते हैं, तो आपको प्रति सेकंड 100 संदेश संभाल करने की आवश्यकता है। लेकिन मान लीजिए कि आप केवल 5 सेकंड में तापमान को मापने की देखभाल करते हैं। इस तरह के मामले में प्रत्येक 5 सेकंड में मतदान एक बार 500 संदेशों को संभालने से अधिक कुशल होगा। सामान्य ज्ञान के लिए –

13

मतदान करना आसान है, बहुत आसान है, यह किसी भी प्रक्रियात्मक कोड जितना आसान है। मतदान नहीं करना मतलब है कि आप असिंक्रोनस प्रोग्रामिंग की दुनिया में प्रवेश करते हैं, जो मस्तिष्क-मृत के रूप में आसान नहीं है, और कभी-कभी चुनौतीपूर्ण भी हो सकता है।

और किसी भी प्रणाली में सबकुछ के साथ, कम प्रतिरोध का मार्ग आम तौर पर अधिक सामान्य रूप से लिया जाता है, इसलिए हमेशा प्रोग्रामर भी मतदान का उपयोग करते हैं, यहां तक ​​कि महान प्रोग्रामर भी होते हैं, क्योंकि कभी-कभी एसिंक्रोनस पैटर्न के साथ चीजों को जटिल करने की आवश्यकता नहीं होती है।

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

+5

+1: "कभी-कभी एसिंक्रोनस पैटर्न वाले चीजों को जटिल करने की आवश्यकता नहीं होती है।" – JeffK

1

यह आपके प्रश्न का उत्तर नहीं दे रहा है। लेकिन वास्तव में, विशेष रूप से इस "दिन और उम्र" में जहां प्रोसेसर चक्र सस्ते होते हैं, और बैंडविड्थ बड़ा होता है, मतदान वास्तव में कुछ कार्यों के लिए एक बहुत अच्छा समाधान है।

लाभ हैं:

  • सस्ते
  • विश्वसनीय
  • Testable
  • लचीला
+0

मुझे खुशी है कि आपने "कुछ कार्य" के साथ योग्यता प्राप्त की है क्योंकि विचार है कि हमारे पास अंतहीन प्रसंस्करण शक्ति, स्थान या बैंडविड्थ अंतर्निहित रूप से फर्श है। आखिरकार हम कितनी तेजी से प्रोसेसर हो सकते हैं, आप कितनी तेजी से 3.5in एचडीडी में स्टोर कर सकते हैं, और आप इंटरनेट कनेक्शन को कितना डेटा निचोड़ सकते हैं। इस तरह की सोच स्केल नहीं कर सकती है। – user109878

2

आप एक फ़ाइल में परिवर्तन के लिए मतदान कर रहे हैं, तो मैं मानता हूँ कि आप का उपयोग करना चाहिए फाइल सिस्टम अधिसूचनाएं जो तब होती हैं जब यह होती है, जो अब अधिकांश ऑपरेटिंग सिस्टम में उपलब्ध हैं।

एक डेटाबेस अद्यतन/डालने पर ट्रिगर और फिर कुछ करने के लिए अपने बाह्य कोड कह सकते में

। हालांकि यह हो सकता है कि आपको त्वरित कार्यों के लिए आवश्यकता न हो। उदाहरण के लिए आपको केवल 15 मिनट के भीतर किसी भिन्न नेटवर्क पर डाटाबेस ए से डेटाबेस बी तक डेटा प्राप्त करने की आवश्यकता हो सकती है। डाटाबेस बी डेटाबेस ए से एक्सेस नहीं किया जा सकता है, इसलिए आप मतदान कर रहे हैं, या एक स्टैंडअलोन प्रोग्राम के पास चल रहे हैं, डाटाबेस बी

इसके अलावा, मतदान कार्यक्रम के लिए एक बहुत ही सरल बात है। समय की बाधाएं कम होने पर अक्सर यह पहला कदम कार्यान्वयन होता है, और क्योंकि यह काफी अच्छी तरह से काम करता है, यह बनी हुई है।

23

दो कारण हैं कि मतदान द्वारा सिद्धांत को खराब क्यों माना जा सकता है।

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

  2. मतदान एक निश्चित अंतराल पर किया जाता है। इसका मतलब है कि आपको पता नहीं चलेगा कि अगली बार अंतराल पारित होने तक एक बदलाव हुआ है।

परिवर्तनों के बारे में अधिसूचित होना बेहतर होगा। इस तरह आप उन परिवर्तनों के लिए मतदान नहीं कर रहे हैं जो नहीं हुए हैं और जैसे ही आपको अधिसूचना मिलती है, आपको बदलाव के बारे में पता चल जाएगा।

+2

ध्यान दें कि कभी-कभी मतदान संसाधनों को बचाता है। यह एक * ऊपरी * सीमा निर्धारित करता है कि आप कितनी बार भारी उठाने, अर्थात् मतदान अंतराल करते हैं। अक्सर प्रासंगिक नहीं होता है, लेकिन जब यह प्रासंगिक होता है तो यह महत्वपूर्ण हो सकता है। –

+6

बेशक, अधिकांश चीजें जो परिवर्तन की अधिसूचना प्रदान करती हैं, वे परिवर्तन को पहचानने के लिए स्वयं मतदान कर रहे हैं। कुछ बिंदु पर, कई परिस्थितियों में, मतदान पहले आता है। –

2

मतदान के बारे में बात यह है कि यह काम करता है! इसे लागू करने के लिए इसके विश्वसनीय और सरल है।

पूलिंग की लागत ज्यादा हो सकती है - अगर आप हर मिनट में परिवर्तन के लिए एक डेटाबेस स्कैनिंग कर रहे हैं जब केवल दो परिवर्तन एक दिन आप एक बहुत छोटे से परिणाम के लिए संसाधनों का एक बहुत उपभोग कर रहे हैं कर रहे हैं।

हालांकि किसी भी अधिसूचना प्रौद्योगिकी के साथ समस्या यह है कि वे लागू करने के लिए बहुत जटिल हैं और न केवल वे अविश्वसनीय हो सकते हैं (और यह एक बड़ा है लेकिन) जब आप काम नहीं कर रहे हैं तो आप आसानी से नहीं बता सकते हैं।

तो अगर आप कुछ अन्य technoligy के लिए छोड़ मतदान कर यह औसत प्रोग्रामर द्वारा प्रयोग करने योग्य है और अति विश्वसनीय है सुनिश्चित करें।

+0

मैं आपके बिंदु से सहमत हूं, मेरे वर्तमान आवेदन में एक ही मतदान तंत्र कर रहा है और फ़ाइल अपडेट की जांच कर रहा हूं लेकिन यह बहुत संसाधन गहन है और बहुत सारे संसाधनों को छेड़छाड़ कर रहा है, स्थिति से निपटने का सबसे अच्छा तरीका क्या होगा? – Rachel

3

इसका सरल - मतदान खराब है - अक्षम, संसाधनों का अपशिष्ट आदि। हमेशा कुछ प्रकार की कनेक्टिविटी होती है जो किसी भी प्रकार की घटना के लिए निगरानी कर रही है, भले ही 'मतदान' चुना न जाए।

तो अतिरिक्त मील क्यों जाएं और जगह पर अतिरिक्त मतदान करें।

कॉलबैक सबसे अच्छा विकल्प है - बस अपनी वर्तमान प्रक्रिया के साथ कॉलबैक को टाई करने के बारे में चिंता करने की आवश्यकता है। अंतर्निहित, यह देखने के लिए मतदान चल रहा है कि कनेक्शन अभी भी किसी भी तरह से है।

यदि आप अपनी प्रेमिका को फोन करना/बजाना जारी रखते हैं और कभी जवाब नहीं देते हैं, तो कॉल क्यों करें? बस एक संदेश छोड़ दो, और जब तक वह 'वापस कॉल' न करे;)

+0

लेकिन यदि आपातकालीन स्थिति है तो क्या होगा और आपको प्रेमिका एएसएपी से कुछ पता लगाना होगा? क्या होगा यदि वह अक्सर अपने उत्तरफ़ोन की जांच नहीं करती है? इस स्थिति में आप पर वापस आने के लिए आप पर भरोसा करेंगे, और आप पर इसका कोई नियंत्रण नहीं है। मैं अपना मुद्दा लेता हूं, सिर्फ काउंटर-उदाहरण देता हूं। – xan

+0

आप रिमोट ऑब्जेक्ट हमेशा एक वैध स्थिति में सुनिश्चित करने के लिए नियंत्रण रख सकते हैं, या रिपोर्ट की समस्याएं जिन्हें स्वयं हल नहीं किया जा सकता है। या समानता को जारी रखते हुए, उत्तरफ़ोन लगातार बीप करें ताकि प्रेमिका इसे सीधे नोटिस कर दे, या यह दूसरों को चेतावनी देने के लिए एक txt भेजता है कि वह परेशानी में हो सकती है। – HAdes

+0

महान सादृश्य वहाँ। – user109878

1

मैं मानता हूं कि मतदान से बचाना एक अच्छी नीति है। हालांकि, Robert's post के संदर्भ में, मैं कहूंगा कि मतदान की सादगी उन मामलों में बेहतर दृष्टिकोण कर सकती है जहां यहां उल्लेखित मुद्दे इतनी बड़ी समस्या नहीं हैं, क्योंकि असीमित दृष्टिकोण अक्सर कम पढ़ने योग्य और बनाए रखने में कठिन होता है, न कि बग का उल्लेख करने के लिए जो इसके क्रियान्वयन में रेंग सकता है।

3

मैं कुछ स्थितियों के लिए कभी-कभी मतदान का उपयोग करता हूं (उदाहरण के लिए, एक खेल में, मैं प्रत्येक फ्रेम को कीबोर्ड स्थिति दूंगा), लेकिन कभी भी एक लूप में नहीं जो केवल मतदान करता है, बल्कि मैं एक चेक के रूप में मतदान करता हूं (संसाधन है एक्स बदल गया? यदि हां, तो कुछ करें, अन्यथा कुछ और संसाधित करें और बाद में जांचें)। आम तौर पर हालांकि, मैं अतुल्यकालिक अधिसूचनाओं के पक्ष में मतदान से बचता हूं।

कारण यह है कि मैं संसाधनों (सीपीयू समय, जो कुछ भी) कुछ नहीं होने का इंतजार कर रहा हूं (विशेष रूप से यदि वे संसाधन पहले से ही उस चीज को तेज कर सकते हैं)। जिन मामलों में मैं मतदान का उपयोग करता हूं, मैं निष्क्रिय इंतजार नहीं करता हूं, मैं कहीं और संसाधनों का उपयोग करता हूं, इसलिए यह एक गैर-मुद्दा है (मेरे लिए, कम से कम)।

1

सब कुछ के साथ, यह निर्भर करता है। वर्तमान में काम करने वाली एक बड़ी उच्च-लेनदेन प्रणाली SQL के साथ एक अधिसूचना का उपयोग करती है (SQL सर्वर के भीतर लोड किया गया एक डीएलएल जिसे एक विस्तारित एसपी द्वारा कुछ तालिकाओं पर ट्रिगर्स से बुलाया जाता है। डीएलएल तब अन्य ऐप्स को सूचित करता है जो करने के लिए काम करते हैं)।

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

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

21

चीजें हैं जो इस दिन और उम्र में मतदान का उपयोग के उदाहरण: नए संदेशों के लिए

  • ईमेल क्लाइंट सर्वेक्षण (यहां तक ​​कि IMAP के साथ)।
  • आरएसएस पाठकों को फ़ीड में बदलाव के लिए मतदान।
  • खोज इंजन उन पृष्ठों में परिवर्तन के लिए मतदान करते हैं जो वे इंडेक्स करते हैं। नए सवाल के लिए
  • StackOverflow उन सर्वेक्षण, झुंड में परिवर्तन के लिए 'ताज़ा' ;-)
  • बिटटोरेंट क्लाइंट ट्रैकर (और, मुझे लगता है, एक दूसरे को DHT के साथ) पोल से टकराने के द्वारा।
  • बहु-कोर सिस्टम पर स्पिनलॉक्स कोर के बीच सबसे कुशल सिंक्रनाइज़ेशन हो सकते हैं, ऐसे मामलों में जहां देरी बहुत कम होती है, इस कोर पर एक और धागा शेड्यूल करने के लिए समय होता है, अन्य कोर जो भी हम इंतजार कर रहे हैं ।

कभी-कभी एसिंक्रोनस अधिसूचनाएं प्राप्त करने का कोई तरीका नहीं है: उदाहरण के लिए आरएसएस को पुश सिस्टम के साथ बदलने के लिए, सर्वर को फ़ीड पढ़ने वाले सभी लोगों के बारे में जानना होगा और उनसे संपर्क करने का एक तरीका होगा। यह एक मेलिंग सूची है - आरएसएस को उन चीज़ों में से एक चीज से बचने के लिए डिज़ाइन किया गया था। इसलिए तथ्य यह है कि मेरे अधिकांश उदाहरण नेटवर्क ऐप हैं, जहां यह एक मुद्दा होने की संभावना है।

अन्य बार मतदान मतदान करने के लिए पर्याप्त सस्ता है, जहां एसिंक अधिसूचना भी है।

स्थानीय फ़ाइल के लिए, परिवर्तनों की अधिसूचना सिद्धांत में बेहतर विकल्प होने की संभावना है। उदाहरण के लिए, यदि आप हमेशा के लिए इसे पोक कर रहे हैं तो डिस्क को कताई से रोक सकता है, फिर भी ओएस कैश हो सकता है। और यदि आप एक फ़ाइल पर हर सेकेंड मतदान कर रहे हैं जो केवल एक घंटे में बदलता है, तो हो सकता है कि आप अपनी मशीन की प्रसंस्करण शक्ति के 0.001% (या जो कुछ भी) पर कब्जा कर रहे हों। यह छोटा लगता है, लेकिन क्या होता है जब 100,000 फाइलें आपको मतदान करने की आवश्यकता होती है?

प्रैक्टिस में, हालांकि, ओवरहेड नगण्य होने की संभावना है, जो भी आप करते हैं, जिससे वर्तमान में काम करने वाले कोड को बदलने के बारे में उत्साहित होना मुश्किल हो जाता है। सबसे अच्छी बात यह है कि आप जिस सिस्टम को बदलना चाहते हैं उस पर मतदान के कारणों को देखने के लिए सबसे अच्छी बात यह है कि यदि आप किसी को पाते हैं तो सभी मतदान के खिलाफ सामान्य तर्क देने की बजाय उनको उठाएं। यदि आपको कोई नहीं मिला है, तो आप जो भी टूटा नहीं है उसे ठीक नहीं कर सकते ...

+3

ओएमजी !! मैं एक मतदान उपकरण हूँ। : ओ – EMBarbosa

5

मुझे लगता है कि लोगों को यह महसूस करना चाहिए कि ज्यादातर मामलों में, कुछ स्तर पर मतदान हो रहा है, यहां तक ​​कि घटना या बाधा में भी प्रेरित स्थितियों, लेकिन आप मतदान करने वाले वास्तविक कोड से अलग हैं। वास्तव में, यह सबसे वांछनीय स्थिति है ... अपने आप को कार्यान्वयन से अलग करें, और केवल घटना से निपटें। यहां तक ​​कि यदि आपको स्वयं मतदान को लागू करना है, तो कोड लिखें ताकि यह अलग हो, और परिणामों को कार्यान्वयन के स्वतंत्र रूप से निपटाया जा सके।

+0

यह हमेशा सटीक नहीं है। उस स्थिति में जहां ऑब्जेक्ट गुण बदलते हैं, ऑब्जेक्ट स्वयं एक अधिसूचना सेट कर सकता है जो प्रॉपर्टी सेट होने पर होती है। उस स्थिति में मतदान आवश्यक नहीं होगा, हालांकि यह निश्चित रूप से इस मामले में हो सकता है कि वस्तु वास्तव में पुराने और नए मूल्यों के बीच एक अंतर के लिए जांच करती है। – user109878

2

मैं यहाँ कई जवाब देखते हैं, लेकिन मुझे लगता है कि सबसे सरल जवाब इस सवाल का जवाब यह आत्म है:

क्योंकि है (आमतौर पर) और अधिक सरल कॉलबैक के लिए बुनियादी ढांचे बनाने के लिए की तुलना में एक मतदान पाश कोड करने के लिए।

फिर, आपको सरल कोड मिलता है जो बाद में एक बाधा बन जाता है, जिसे बाद में आसानी से समझा जा सकता है और फिर से डिजाइन किया जा सकता है/फिर से दोबारा बनाया जा सकता है।

7

क्लाइंट मतदान स्केल के साथ-साथ सर्वर अधिसूचनाएं भी स्केल नहीं करता है। कल्पना करें कि हजारों क्लाइंट सर्वर से पूछ रहे हैं "कोई नया डेटा?" हर 5 सेकंड। अब नए डेटा के बारे में सूचित करने के लिए ग्राहकों की एक सूची रखने वाले सर्वर की कल्पना करें। सर्वर अधिसूचना स्केल बेहतर है।

+1

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

0

यहाँ एक अच्छा धक्का और पुल के रिश्तेदार गुण का सार है: https://stpeter.im/index.php/2007/12/14/push-and-pull-in-application-architectures/

मुझे लगता है मैं इसे आगे भी संक्षेप में प्रस्तुत कर सकता है इस जवाब में चाहते हैं, लेकिन कुछ चीजें सबसे अच्छा बाईं तमाम कर रहे हैं।

0

एसक्यूएल मतदान के बारे में सोचते समय, वीबी 6 के दिन में आप WithEvents कीवर्ड का उपयोग करके रिकॉर्ड्स बनाने में सक्षम होते थे जो एसिंक "सुनने" का प्रारंभिक अवतार था।

मैं व्यक्तिगत रूप से हमेशा मतदान से पहले एक कार्यक्रम संचालित कार्यान्वयन का उपयोग करने का एक तरीका ढूंढता हूं।विफल रहने के निम्न में से किसी भी एक मैनुअल कार्यान्वयन मदद कर सकता है:

  • एसक्यूएल सेवा ब्रोकर/निर्भरता वर्ग
  • कतार प्रौद्योगिकी के कुछ प्रकार (RabbitMQ या समान)
  • यूडीपी प्रसारण - दिलचस्प तकनीक हो सकता है कि एकाधिक नोड श्रोताओं के साथ बनाया गया। यद्यपि कुछ शुद्ध कार्यों पर हमेशा संभव नहीं है।

इनमें से कुछ को आपके प्रोजेक्ट की थोड़ी-थोड़ी नवीनीकरण की आवश्यकता हो सकती है, लेकिन एक एंटरप्राइज़ दुनिया में मतदान केंद्र की बजाय जाने का बेहतर मार्ग हो सकता है।

0

अधिकांश प्रतिक्रियाओं के साथ सहमत हैं कि Async/Messaging आमतौर पर बेहतर है। मैं रॉबर्ट गोल्ड के जवाब से बिल्कुल सहमत हूं। लेकिन मैं एक और बिंदु जोड़ना चाहता हूं।

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

अंत में, सबसे अधिक समझ का उपयोग करें जो उपयोग की स्थिति के लिए उपयोग की स्थिति के लिए उपयोग करता है।

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