2009-05-04 9 views
11

मैं एक अपाचे 2 वेबसर्वर को फ़्यूज़न पैसेंजर के साथ रेल वेब अनुप्रयोगों पर एकाधिक रूबी चला रहा हूं। मुझे पता है कि यात्री अनुरोधों को संभालने के लिए रुबी प्रक्रियाओं को जन्म देता है। मेरे पास निम्नलिखित प्रश्न हैं:फ़्यूज़न पैसेंजर थ्रेड और प्रक्रियाओं का पुन: उपयोग कैसे करता है?

  • यदि एक ही समय में एक से अधिक अनुरोधों को संभालना है, तो यात्री कई प्रक्रियाओं या एकाधिक (रूबी) धागे को जन्म देगा? मैं इसे कैसे कॉन्फ़िगर कर सकता हूं ताकि यह हमेशा एकल-थ्रेडेड प्रक्रियाओं को जन्म दे?
  • यदि मेरे पास दो रेल अनुप्रयोग हैं, तो कल्पना करें कि ऐप ए के लिए अनुरोध 1 प्रक्रिया करने के लिए जाता है, फिर बाद में ऐप बी के लिए अनुरोध आता है। क्या यह संभव है कि प्रक्रिया 1 इस अनुरोध को भी संभाल लेगी? यह कब और कैसे संभव है? दूसरे शब्दों में, एक प्रक्रिया को कई रेल अनुप्रयोगों के लिए अनुरोधों को संभालने की अनुमति है?
  • मेरे पास एक ही रेल एप्लिकेशन है जो एकाधिक यूआरएल और एकाधिक वर्चुअल होस्ट (जैसे http: // और https: //) में निर्यात किया गया है। क्या वही प्रक्रिया अलग-अलग आभासी मेजबानों की सेवा करने में सक्षम होगी? (इस का जवाब हो हाँ, मैं आभासी मेजबान एक के लिए एक अनुरोध का जवाब देने में एक वैश्विक चर निर्धारित किया है लगता है, और मैं आभासी मेजबान बी में मान प्राप्त करने में सक्षम था)

उत्तर

12

सामान्य शब्दों में, यात्री एप्लिकेशनस्पानर को फोर्क करके नई प्रक्रियाओं को स्पॉन्स करता है, जिसमें फ्रेमवर्क और एप्लिकेशन कोड मेमोरी में प्री-लोड किया गया है, या फ्रेमवर्कस्पॉनर है, जिसमें केवल फ्रेमवर्क कोड है।

यात्री, जहां तक ​​मुझे पता है, धागे में सौदा नहीं करता है। इसके बजाए, जैसे किसी एप्लिकेशन पर भार बढ़ता है, यह उस एप्लिकेशन के एप्लिकेशनस्पॉनर को फोर्क करेगा और एक और उदाहरण शुरू करेगा। जब भार कम हो जाता है, तो एक या अधिक आवेदन उदाहरण मारे जाते हैं।

यदि यात्री एक निश्चित तरीके से कॉन्फ़िगर किया गया है (मुझे "स्मार्ट" स्पॉन विधि चुनकर विश्वास है), यह एक फ्रेमवर्कस्पॉनर बनाएगा, जो रेल कोड लोड करता है, लेकिन कोई एप्लीकेशन कोड नहीं है, जिसे तब लोड करने के लिए फोर्क किया जा सकता है और रेल के उस संस्करण का उपयोग कर आवेदन।

तो आपके सवालों के जवाब:

  • यह उन्हें क्रमिक रूप में काम करेगा, तो अतिरिक्त प्रक्रियाओं अंडे अगर यह निर्णय लेता है लोड काफी अधिक है।

  • नहीं। एक प्रक्रिया केवल एक रेल आवेदन से संबंधित हो सकती है।

  • मैं इस पर स्केची की तरह हूं, लेकिन आपका प्रयोग समझ में आता है। यात्रियों को समझने के लिए पर्याप्त स्मार्ट होना चाहिए कि भले ही यह सर्वर कॉन्फ़िगरेशन में विभिन्न स्थानों से चल रहा हो, आप उसी एप्लिकेशन के बारे में बात कर रहे हैं। यह शायद एप्लिकेशन के फाइल सिस्टम पथ पर आधारित है।

संपादित करें: मैं चला गया और यह एक बिट के बारे में पढ़ें। बाहर निकलता है मैं ज्यादातर सही था, लेकिन तकनीकी विवरण थोड़ा दूर थे। Passenger documentation

+0

यात्री के भुगतान संस्करण में अब धागे और प्रक्रियाओं को बढ़ाने का विकल्प है। – Kris

6

यूप, बर्क सही है। तीसरे प्रश्न के मामले में, फ़्यूज़न पैसेंजर एप्लिकेशन को उनके एप्लिकेशन रूट पथ से पहचानता है। तो यदि आपके पास दो वर्चुअल होस्ट हैं, यदि वे दोनों एक ही दस्तावेज़ रूट पर इंगित करते हैं तो फ़्यूज़न पैसेंजर सोचेंगे कि वे एक ही ऐप हैं।

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

  • कोई संबंधित समस्या नहीं^_^