2013-07-11 3 views
5

में HTTP कनेक्शन बंद करने का पता लगाने के दौरान Nginx का उपयोग करते समय कई बार HTTP 49 9 त्रुटि लॉग में दर्ज किया जाता है जब क्लाइंट ने समय से अपने कनेक्शन को बंद कर दिया है (उदाहरण के लिए, कनेक्शन का समय समाप्त हो गया है, उपयोगकर्ता ने अपने ब्राउज़र को फिर से लोड किया है या दबाया है या अन्यथा)।रेल

मैं समझता हूं कि Nginx इसका पता लगाने में सक्षम है क्योंकि वे अंत हैं जो सिग्पिप सिग्नल प्राप्त करेंगे जो सॉकेट बंद कर दिया गया है, हालांकि मुझे आश्चर्य है कि क्या यह नोटिस रेल को वापस लेना संभव है?

शॉपिफ़ ने हाल ही में रेलवे को संसाधित करने के अनुरोध पर अनुरोध भेजने से पहले यूनिकॉर्न में इसका पता लगाने के लिए very novel approach का उपयोग किया, हालांकि मैं इसे लंबे समय से चलने वाले लेनदेन के दौरान रेल ऐप के भीतर पहचानने में सक्षम होना चाहता हूं।

+0

मेरे ज्ञान (जो गलत हो सकता है) के कारण इसका कोई समाधान नहीं है। (यही कारण है कि Shopify रेल को अनुरोध भेजने से पहले इसका पता लगाने की कोशिश करता है)। समस्या रेल को रोकने के साथ भी नहीं है, लेकिन मध्य में डीबी लेनदेन को रोकने का कोई तरीका नहीं है, और मुझे लगता है कि यह आपके प्रश्न की मुख्य चिंता है। –

उत्तर

1

रेल के प्रेषक ने अनुरोध को संसाधित करने के बाद ही - http क्लाइंट के साथ कोई संबंध नहीं है, केवल जब प्रक्रिया पूरी हो जाती है - प्रतिक्रिया ग्राहक के पास जाती है।

तो मूल रूप से, कोई तरीका नहीं है कि आप यह बता सकें कि क्लाइंट (उदाहरण: ब्राउज़र) ने कनेक्शन को बंद कर दिया है, जबकि आप इसे पहले से संसाधित कर रहे हैं।