asp.net mvc 3 - How can I allow multiple users to perform a lengthy mvc3 action simultaneously with good response time? -
मेरे पास इसके 3-4 से संबंधित प्रश्न हैं।
-
यदि रेखा संख्या एक्स तुल्यकालिक अपलोड विधि का उपयोग कर रहा है: -
a एक ही उपयोगकर्ता (उसी सत्र) का दूसरा अनुरोध किसके लिए किया जाएगा: -
-
_ अपलोड अवस्था से भिन्न एक एक्शन विधि? - क्या यह कतारबद्ध या एक साथ काम की जाएगी?
-
वही कार्यपद्धती i.e.- _upploadStatement? - क्या उसे एक कतार में रखा जाना चाहिए या एक साथ परोस दिया जाएगा?
b एक अलग उपयोगकर्ता (अलग सत्र) का दूसरा अनुरोध किस प्रकार से किया जाएगा: -
-
_ अपलोड अवस्था से भिन्न एक एक्शन विधि? - क्या यह कतारबद्ध या एक साथ काम की जाएगी?
-
वही कार्यपद्धती i.e.- _upploadStatement? - क्या इसे एक कतार में रखा जाना चाहिए या एक साथ काम किया जाएगा?
यदि उन्हें एक कतार में रखा जाता है, तो इसका मतलब है कि अगले उपयोगकर्ता पहले उपयोगकर्ता का अपलोड समाप्त होने तक इंतजार करना होगा?
सार्वजनिक वर्ग एबीसीकंट्रोलर: नियंत्रक {सार्वजनिक एक्शनरसल्ट A1 () {वापसी दृश्य (); } सार्वजनिक JsonResult _UploadStatement (HttpPostedFileBase UploadedStatement) {// कुछ वेब सेवा अन्य सर्वर (एमेज़ॉन एस 3 भंडारण कहते हैं) को प्राप्त एक लंबी फाइल अपलोड करना: - // लाइन संख्या - X}}
ये क्रिया समानांतर में हो जाएंगे। हर बार IIS एक नया अनुरोध प्राप्त करता है, यह एक नया नियंत्रक बनाता है, और नए नियंत्रक आवृत्ति पर उस क्रिया को निष्पादित करता है। हालांकि, प्रत्येक नियंत्रक एक अलग थ्रेड का उपयोग करके अनुरोध को निष्पादित करेगा।
केवल अगर आपके पास ऐसा कोड होता है, तो उपयोगकर्ता B को तब तक इंतजार करना होगा जब तक उपयोगकर्ता ए उसके अपलोड समाप्त हो जाएगा:
पब्लिक क्लास एबीसीकंट्रोलर: नियंत्रक {निजी स्थैतिक पठनीय वस्तु वस्तु ताला = नया ऑब्जेक्ट (); सार्वजनिक कार्यवाहक परिणाम A1 () {वापसी दृश्य (); } सार्वजनिक JsonResult _UploadStatement (HttpPostedFileBase UploadedStatement) {ताला (लॉक) {// कुछ वेब सेवा अन्य सर्वर को प्राप्त करने वाली एक लंबा फ़ाइल अपलोड करती है (अमेज़न एस 3 स्टोरेज कहती है): - // LINE NUMBER - X}}}
इस तरह के एक ताला धागे को बताएगा "हे, हम में से केवल एक ही समय पर इस पद्धति को निष्पादित करने की अनुमति है। अभी मेरे पास विधि बंद है और मुझे तब तक इंतज़ार करना होगा जब तक मैं नहीं करूँगा। आपको लॉक देगा, और फिर आप विधि निष्पादित कर सकते हैं, जिससे कि आप दूसरों को समाप्त करने की प्रतीक्षा कर सकते हैं। "
एक्शन मेथड को पता नहीं है या उसका अनुरोध किससे उत्पन्न हुआ? अगर यूजर ए 3 अपलोड किए गए हैं, आईआईएस उन सभी को समानांतर में निष्पादित करेगा, अलग धागे का उपयोग कर। हालांकि यह परिणाम उसी क्रम में नहीं लौटा सकता है जिसमें उन्हें अनुरोध किया गया था। उदाहरण के लिए दूसरा अनुरोध पहले खत्म हो सकता है, फिर तीसरा और अंत में पहले।
हालांकि थ्रेड भुखमरी है क्या हो सकता है कहो कि आपके पास 50 उपयोगकर्ता प्रत्येक एक ही समय में 3 फाइल अपलोड कर रहे हैं। इसका मतलब है कि कम से कम 150 थ्रेड्स पूल से लिए जाएंगे, जो आपके एप्लिकेशन के अन्य हिस्सों को और अधिक धीरे-धीरे प्रतिक्रिया करने का कारण हो सकता है। आप धागा भुखमरी परिदृश्यों के साथ काम करने वाले एसिंक कंट्रोलर से विस्तार करने के लिए देख सकते हैं जो थ्रेड ब्लॉकिंग के कारण भारी I / O बाध्य या अन्यथा अव्यक्त हैं।
-
-
Comments
Post a Comment