2014-09-23 11 views
5

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

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

https://github.com/witusj/CFA-2/tree/master/WK4

बहुत धन्यवाद: जो प्रणाली में रुचि रखते हैं के लिए, यहाँ कोड है!

उत्तर

3

क्या @ एफवीडी ने कहा। लेकिन इसके अतिरिक्त, ध्यान रखें कि shinyapps.io है यदि आप किसी और को स्केलेबल तरीके से अपने एप्लिकेशन को होस्ट करने के लिए चाहते हैं, या Shiny Server Pro यदि आप एकाधिक आर प्रक्रियाओं के साथ एक चमकदार एप्लिकेशन वापस करना चाहते हैं।

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

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

3

यह आपके ऐप की जटिलता और जिस सर्वर पर आप होस्ट करते हैं उस पर निर्भर करता है। उनके डेवलपर्स here में से एक द्वारा स्पष्टीकरण दिया गया है, हालांकि कोई स्पष्ट दिशानिर्देश नहीं हैं।

चूंकि आपके पास ऐसे छात्र हैं जिन पर आप परीक्षण कर सकते हैं, आप अनुमान लगा सकते हैं कि एप्लिकेशन सही तरीके से कैसे संभालने में सक्षम होगा, और इस नंबर का उपयोग करने वाले लोगों की संख्या को सीमित करने के लिए इस नंबर का उपयोग करें । यदि आप the manual देखते हैं तो आपको ऐसा करने के लिए "सरल शेड्यूलर" मिलेगा। मैनुअल से बाहर उदाहरण का उपयोग करने के लिए, अगर आप 5 से जुड़े छात्रों की संख्या को सीमित करना चाहते हैं, तो आप आप विन्यास को simple_scheduler जोड़ना होगा:

location/{ 
    # Define the scheduler to use for this location 
    simple_scheduler 5; 
    ... 
} 

जब से तुम अधिक से अधिक 5 छात्रों है, का सेट कई प्रतियां कई अलग-अलग स्थानों के तहत आवेदन। आप इसे load balancing idea of Huidong Tang, या implementation of that idea by sjewo का उपयोग करके बढ़ा सकते हैं।

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