2012-04-01 7 views
5

मेरे पास सिंगल-थ्रेडेड रेल ऐप हैरोकू सीडर पर सिंगल-थ्रेडेड मोड में पतले पर चल रहा है।मेरे सिंगल-थ्रेडेड रेल ऐप समवर्ती अनुरोधों को कैसे संभालने वाला है?

जबकि मैं एक बड़ा पोस्ट अनुरोध (एक फ़ाइल अपलोड) करता हूं जो एक मिनट से अधिक समय लेता है, मैं एक ही समय में अन्य जीईटी अनुरोध कर सकता हूं।

हेरोकू समर्थन मुझे आश्वस्त करता है कि उनकी रूटिंग परत अनुरोध को संग्रहित नहीं कर रही है और फिर इसे एक साथ भेज रही है (जो कई प्रॉक्सी का व्यवहार है, जैसे कि nginx)। वे जोर देते हैं कि मेरा ऐप समवर्ती अनुरोधों को संभाला जा रहा है।

यहां क्या हो रहा है?

उत्तर

6

पतला EventMachine के शीर्ष पर बनाया गया है, जो ईवेंट-आधारित आईओ प्रदान करता है।

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

+0

दिलचस्प - यदि सच है, तो मुझे आश्चर्य है कि पतले के इस व्यवहार के बारे में और बात नहीं की जाती है। ऐसा लगता है कि इसके सामने अपनी छोटी मिनी प्रॉक्सी है, समेकन में सुधार। क्या आप जानते हैं कि पतले कोड का कौन सा हिस्सा मैं इस व्यवहार को समझने के लिए देख सकता हूं? –

+0

मैंने पतले कोड को नहीं देखा, लेकिन, तार्किक रूप से, यह नेटवर्क परत होना चाहिए। पता नहीं है कि स्रोतों में इसकी पहचान करना आसान है या नहीं। –

+0

पतली संगीतकारों के निर्माता की तरह दिखता है: https://groups.google.com/forum/#!msg/thin-ruby/uKLD-qob6Kc/gH8b4MPATI8J –

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