2013-01-09 14 views
6

मेरे पास एक एएसपीनेट वेबसाइट है जो तृतीय पक्ष exe का उपयोग कर अनुरोधों को संसाधित करती है। वर्तमान में मेरे कार्यप्रवाहAsp.Net - बाहरी अनुप्रयोग के लिए ऑफलोड प्रसंस्करण

  1. उपयोगकर्ता किसी भी ब्राउज़र का उपयोग कर वेबसाइट तक पहुँचता है और नौकरी विवरण के साथ एक फ़ॉर्म भरता

  2. वेबसाइट एक WCF स्वयं की मेजबानी की खिड़कियों सेवा है जो एक बंदरगाह

  3. विंडोज पर सुन रहा है कहता है सेवा ने नौकरी को संसाधित करने के लिए तृतीय पक्ष exe लॉन्च किया और परिणाम

  4. वेबसाइट उपयोगकर्ता को लौटा परिणाम प्रदर्शित करता है

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

  1. उपयोगकर्ता किसी भी ब्राउज़र का उपयोग कर वेबसाइट एक्सेस करता है और

  2. वेबसाइट एक डेटाबेस के लिए बाहर नौकरी विवरण लिखते नौकरी विवरण के साथ एक फ़ॉर्म भरता है पर विचार कर रहा हूँ

  3. विंडोज सेवा जो एक नई नौकरी के लिए हर 10 सेकंड में डेटाबेस मतदान कर रही है, नौकरी उठाती है और तीसरे पक्ष के आवेदन का उपयोग करके इसे निष्पादित करती है। परिणाम डेटाबेस में वापस लिखे गए हैं।

  4. वेबसाइट जो अब डेटाबेस को मतदान करना शुरू कर चुकी है, परिणाम उठाती है और उन्हें उपयोगकर्ता को प्रदर्शित करती है।

दूसरा आर्किटेक्चर मुझे अधिक लॉगिंग क्षमताओं के साथ प्रदान करता है और यदि वे कतार में हैं तो नौकरियां फिर से शुरू हो सकती हैं। हालांकि इसमें बड़ी मात्रा में मतदान शामिल है जो स्केलेबल नहीं हो सकता है। क्या कोई बेहतर वास्तुकला की सिफारिश कर सकता है?

+0

हमने इसी तरह की आवश्यकता के लिए पीओसी किया था, हमने चरण 2 पर एमएसएमक्यू माना लेकिन परियोजना में लागू नहीं किया। इस दिलचस्प कार्यान्वयन पर उत्तरों के लिए तत्पर हैं .. – Sunny

+0

@ सुंदिप - एमएसएमक्यू के लिए क्या विकल्प आपने अपनी परियोजना के लिए उपयोग किया है? क्या परियोजना पूरी हो गई थी या फिर भी यह चल रही है? धन्यवाद –

+0

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

उत्तर

0

मतदान करने के बजाय मैं MSMQ या RabbitMQ साथ जाना होगा चलाता है।

इस तरह आप कतार के कई उपभोक्ताओं (संभवतः वेब सर्वर से अलग सर्वर) पर अपनी प्रसंस्करण को बंद कर सकते हैं, और समानांतर में अधिक अनुरोधों को संसाधित कर सकते हैं।

+0

यह अभी सबसे अच्छा विकल्प प्रतीत होता है। अन्य ने एमएसएमक्यू को भी सुझाव दिया है लेकिन मैं केवल एक जवाब स्वीकार कर सकता हूं। मैं इसे उत्तर के रूप में स्वीकार करूंगा क्योंकि मतदान के दौरान इस विधि को चुनने का एक अच्छा कारण है। –

0

मैंने अपने अनुप्रयोगों में से एक में एक ही आर्किटेक्चर लागू किया है जहां उपयोगकर्ता प्रक्रिया के लिए कई अनुरोध कर रहे हैं। तो मेरे पास है -

  1. उपयोगकर्ता गोटो वेबसाइट का चयन करें और मानकों आदि जमा करें अनुरोध
  2. अनुरोध सभी विवरण + उपयोगकर्ता नाम आदि
  3. एक सेवा डेटाबेस तालिका लग रहा है और ऊपर उठाता है के साथ डेटाबेस तालिका में संग्रहीत किया जाता है फीफो ढंग से अनुरोध
  4. के बाद अनुरोध संसाधित, वहां स्थिति में विफल या कि requestId के खिलाफ डेटाबेस तालिका, जो वेबसाइट पर उपयोगकर्ताओं द्वारा देखा जा सकता
  5. सेवा अगले अनुरोध ऊपर उठाता है अगर वहाँ किसी में पूरे अद्यतन किया जाता है, अन्यथा बंद हो जाता है।
  6. सेवा हर 30 मिनट
+0

अगर मैं हर 30 मिनट में अनुरोध लेने का विलासिता करता तो मैं इस विधि के साथ जाता। हालांकि, मेरे वर्तमान आवेदन के लिए, प्रतिक्रिया वास्तविक समय की आवश्यकता है और बड़ी मात्रा (200+ अनुरोध हर घंटे) के लिए संभावित है। –

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