2013-02-21 46 views
7

मैं एक बहुत ही मानक ढंग से अनुरोध मॉड्यूल का उपयोग कर मेरी Node.js अनुप्रयोग में अन्य वेबसाइटों से कनेक्ट चल रहा होने के बाद अन्य साइटों से कनेक्ट कर रहा:Node.js एप्लिकेशन बाहर समय शुरू होता है (ETIMEDOUT) जब HTTP कुछ समय

Network.prototype.httpRequest = function(url, method, params, headers, callback) 
{ 
    var qs = typeof params === 'string' ? params : querystring.stringify(params || {}), 
     config = { 
      'method': (method || 'get').toUpperCase(), 
      'url': url, 
      'timeout': this.app.api.settings.http.timeout_outbound 
     }; 
    if(config.method === 'GET') 
    { 
     config.url += '?' + qs; 
    } 
    else 
    { 
     config.body = qs; 
    } 

    request(config, callback); 
}; 

मेरे ऐप के कुछ घंटों के जीवित होने के बाद, यह फ़ंक्शन समय-समय पर शुरू होता है - न केवल एक वेबसाइट पर। यह किसी भी समझदार पैटर्न के बिना यादृच्छिक रूप से कनेक्ट करने में विफल रहता है (ETIMEDOUT)।

मेरा पहला, स्पष्ट अनुमान यह है कि कुछ नेटवर्क कनेक्शन के साथ किसी भी तरह अवरुद्ध/हस्तक्षेप करना चाहिए। मेरे ऐप में कई अन्य "चलने वाले हिस्सों" हैं (उदाहरण के लिए, मोंगो से मोंगो से कनेक्ट करना, एलिस्टिकल के माध्यम से लोचदार खोज से जुड़ना आदि), इसलिए शायद यह कल्पना की जा सकती है कि उनमें से एक कारण है ... लेकिन जाहिर है, यह है वास्तव में एक विकल्प अन्य मॉड्यूल को चुनिंदा रूप से अक्षम करने और 6 घंटे का इंतजार करने के लिए बैठता है कि समस्या दूर हो जाती है ...

मैं नेटवर्क यातायात की निगरानी कर रहा हूं (ओएसएक्स, एफडब्ल्यूआईडब्ल्यू पर iStatMenus प्रो के माध्यम से) और कोई असामान्य/निरंतर यातायात नोड से आ रहा है।

क्या मेरे यातायात के साथ अवरोध/हस्तक्षेप करने में कोई अन्य तरीका है?

+1

क्या आपने उस समस्या को हल किया है? मुझे एक ही समस्या है ... – hereandnow78

+1

मुझे समाधान में भी रूचि है ... – rshmelev

+1

मेरे पास भी एक ही समस्या है। क्या आप हमें बता सकते हैं कि आपके लिए कौन सा समाधान तय किया गया है? –

उत्तर

0

क्या आपने setting keep-alive को सच करने की कोशिश की है? ऐसा लगता है कि कनेक्शन समय समाप्त हो रहा है (क्योंकि आपने स्पष्ट रूप से टाइमआउट सेट किया है) जब कोई डेटा प्राप्त नहीं होता है। सॉकेट सर्वर/क्लाइंट समाधान बनाते समय मैं एक ही समस्या में भाग गया और यह ठीक था।

(भी, मैंने प्रश्न को गलत समझा होगा)

+2

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