2012-10-24 15 views
5

के बाद अनुरोध अनुरोध करता है मैं app.get ("/ importdata", कॉलबैक) के माध्यम से नोड + एक्सप्रेस ऐप में बड़ी मात्रा में डेटा आयात करने की कोशिश कर रहा हूं। समय समाप्ति पर और यदि अनुरोध पूरा नहीं हुआ है, तो यह अनुरोध फिर से दोहराता है और मेरा सर्वर दोबारा उसी डेटा को आयात करना शुरू कर देता है।नोडजेस + एक्सप्रेसजेएस सर्वर टाइमआउट

मुझे कनेक्शन समय समाप्ति के बाद अनुरोध को फिर से चलाने का सटीक कारण नहीं मिल रहा है?

अगर मैं अपना समय निर्धारित करता हूं तो समस्या का एक हिस्सा हल हो जाता है, लेकिन कुछ बड़ी संख्या में यह अवधि ठीक है लेकिन मुझे समझ में नहीं आता कि अनुरोध फिर से क्यों खेला जाता है?

बहुत पहले से धन्यवाद। मेरे कंसोल

impstore ---------------> userid समय स्टाम्प बुध अक्टू 24 से मेरी server.js

app.get('/impdata', function(req, res){ 
req.connection.setTimeout(600000); 
console.log("impstore--------------->"); 
    Q.when(getData(req.data), function(resp){ 
     res.json(resp); 
    }); }); 

टुकड़ा से

टुकड़ा 2012 16:35:28 GMT + 0530 (आईएसटी) लिस्टिंग मिला 100 userid आईएमएस 1 समय स्टाम्प पुनरावर्ती लिस्टिंग 200 userid आईएमएस 1 समय स्टाम्प आरईसी मिला ursive लिस्टिंग 300 userid आईएमएस 1 समय स्टाम्प पुनरावर्ती लिस्टिंग 400 userid आईएमएस मिला मिला 1 समय स्टाम्प पुनरावर्ती लिस्टिंग मिला 500 userid आईएमएस 1 समय स्टाम्प पुनरावर्ती लिस्टिंग मिला 600 userid आईएमएस 1 टाइम स्टैम्प रिकर्सिव लिस्टिंग 700 मिली उपयोगकर्ता आईडी आईएमएस 1 टाइम स्टैम्प रिकर्सिव लिस्टिंग 800 मिली उपयोगकर्ता आईडी आईएमएस 1 समय स्टाम्प पुनरावर्ती लिस्टिंग 900 userid आईएमएस 1 समय स्टाम्प पुनरावर्ती impstore ---------------> userid मिला समय स्टाम्प बुध अक्टू 24 2012 16:37 : 28 GMT + 0530 (आईएसटी) लिस्टिंग 1000 मिला userid आईएमएस 1 समय स्टाम्प पुनरावर्ती लिस्टिंग मिला 100 userid आईएमएस 1

जानकारी के लिए: मैं 100 की मात्रा में डेटा हो रही है मैं 900 डेटा प्राप्त लिस्टिंग और फिर सर्वर समय समाप्त हो गया है लेकिन जैसा कि हम कंसोल पर देख सकते हैं, अनुरोध दोबारा आखिरी 2 सेटों की जांच करता है, पहला एक 100 दिखाता है यानी लिस्टिंग अब 1000 तक बढ़ जाती है और दूसरा कहता है कि लिस्टिंग 100 है और जब पूरी प्रक्रिया पूरी हो जाती है, तो मैं 2 समान वस्तुओं है।

उम्मीद है कि मैंने अच्छी तरह से समझाया है।

+2

आपको कुछ कोड (अधिमानतः एक न्यूनतम परीक्षण केस) दिखाना होगा। – ebohlman

+0

आपको कुछ कोड दिखाना होगा (अधिमानतः एक न्यूनतम परीक्षण केस)। – ebohlman

+0

क्या आप वाकई ग्राहक पक्ष नहीं हैं जो इसे पुनः भेज रहा है? – JohnnyHK

उत्तर

0

मुझे एक ही समस्या है। मैंने स्टैक ओवरफ़्लो में एक और जवाब देखा जो बताता है कि HTTP प्रोटोकॉल विनिर्देश के अनुसार, एक HTTP क्लाइंट टाइमआउट के बाद अनुरोध भेज सकता है। एक्सप्रेस के लिए, डिफ़ॉल्ट सर्वर टाइमआउट 2 मिनट (https://nodejs.org/api/all.html#http_server_settimeout_msecs_callback) है।

यदि संभवतः आप ब्राउज़र से उस एंडपॉइंट तक पहुंच रहे हैं तो यह संभवतः आपका मामला है।

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

यदि मैं इस भूत व्यवहार के बेहतर स्पष्टीकरण के साथ दूसरा उत्तर पाता हूं तो मैं यह उत्तर अपडेट करूंगा।

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