मैं एक खिड़कियों सेवा सी # कि MSMQ से पढ़ता है और संदेश यह एजेंटों कि एक कार्यकर्ता सूत्र में उस संदेश पर कार्रवाई करने के लिए उन्हें प्रदान करती है के प्रकार के आधार में लिखा है। आवेदन नहीं एजेंटों के साथ शुरू होता है और रनटाइम पर डायनामिक रूप से तैयार कर रहे हैं के रूप में संदेशों MSMQMSMQ समवर्ती प्रसंस्करण डिजाइन मुद्दा
में आने यह ऐसे काम करता की एक बुनियादी आंकड़ा है:
एजेंट कार्यकर्ता धागा काम करने में व्यस्त है संदेश अपनी स्थानीय कतार में कतारबद्ध है। अब तक सब ठीक है। लेकिन अगर किसी कारण से सेवा बंद हो जाती है, तो स्थानीय कतार सामग्री खो जाती है।
मैं यह पता लगाने की कोशिश कर रहा हूं कि इस परिदृश्य को संभालने का सबसे अच्छा तरीका क्या हो सकता है। अभी स्थानीय कतार System.Concurrent.ConcurrentQueue
हैं। मैं शायद एक एसक्यूएल सी डीबी या कुछ अन्य लगातार भंडारण का उपयोग कर सकता हूं, लेकिन मैं प्रदर्शन के बारे में चिंतित हूं। मेरे दिमाग में दूसरी बात एमएसएमक्यू से पढ़ना है जब एजेंट संदेश संसाधित करने के लिए तैयार होते हैं, लेकिन समस्या यह है कि मुझे नहीं पता कि एमएसएमक्यू में कौन सा संदेश होगा।
इस मुद्दे पर मुझे क्या संभावित दृष्टिकोण मिल सकते हैं?
मुझे रेडिस का उपयोग करना अच्छा लगेगा, लेकिन आपको नहीं लगता कि यह एक ओवरकिल होगा? – Obaid
बिलकुल नहीं। यह बेहद हल्का है, और यह वही करता है जो इसे अच्छी तरह से डिजाइन किया गया था, इसलिए स्वयं को कुछ नया बनाने और डिबग करने के बजाय, आप कुछ ऐसा उपयोग कर सकते हैं जो आपके लिए नौकरी कर सके। वैकल्पिक रूप से, आप स्थायी भंडारण के कुछ प्रकार के लिए त्वरित पहुँच प्राप्त करने के लिए स्मृति मैप की गई फ़ाइलों का उपयोग कर सकते हैं, लेकिन कुछ जटिलताएं हैं, और मैं धागा सुरक्षा के बारे में पता नहीं है ... –