2013-09-26 6 views
6

मैं हेरोकू पर यूनिकॉर्न का उपयोग कर रहा हूं। मेरे पास जो समस्याएं हैं, उनमें से एक फ़ाइल अपलोड के साथ है। हम अपलोड के लिए कैरियरवेव का उपयोग करते हैं, और मूल रूप से, यहां तक ​​कि लगभग 2 एमबी आकार की फ़ाइल के लिए, 50-60% अपलोड किया जाता है, यूनिकॉर्न का समय समाप्त होता है।फ़ाइल अपलोड करते समय यूनिकॉर्न से टाइमआउट त्रुटि

हम स्थानीय रूप से परीक्षण करते समय यूनिकॉर्न का उपयोग नहीं कर रहे हैं, और मुझे स्थानीय फाइलों के साथ स्थानीय समस्याएं नहीं हैं (हालांकि फाइलें वाहकवेव का उपयोग करके एडब्ल्यूएस पर अपलोड की जाती हैं, जैसे उत्पादन + स्टेजिंग के साथ)। हालांकि, & उत्पादन सर्वर स्टेजिंग पर, मुझे लगता है कि हमें टाइमआउट मिलता है।

इस मुद्दे को ठीक करने पर कोई रणनीतियां? मुझे यकीन नहीं है कि मैं इस फ़ाइल को देरी वाली नौकरी पर अपलोड कर सकता हूं (क्योंकि मुझे अपने उपयोगकर्ताओं को यह पुष्टि करने की आवश्यकता है कि फ़ाइल वास्तव में सफलतापूर्वक अपलोड की गई है)।

धन्यवाद! रिंगो

+0

क्या आप स्थानीय रूप से यूनिकॉर्न का उपयोग करने का प्रयास कर सकते हैं? –

उत्तर

0

आपके टाइमआउट की तरह लगता है कि बहुत कम सेट है। आपकी यूनिकॉर्न कॉन्फ़िगरेशन कैसी दिखती है?

एक अच्छा प्रारंभिक बिंदु के लिए https://devcenter.heroku.com/articles/rails-unicorn देखें।

+1

मेरा यूनिकॉर्न टाइमआउट 15 था, 30 तक ऊपर था, लेकिन कोई फर्क नहीं पड़ता। मैं ऐसे समाधान को इंजीनियर करना पसंद करूंगा जो समय-समय पर बढ़ने पर निर्भर न हो। –

2

यदि आप हेरोकू के माध्यम से एस 3 पर बड़ी फाइलें अपलोड कर रहे हैं, तो आप उचित समय से बचने से बच नहीं सकते हैं। अगर कोई बड़ी फाइल अपलोड करने का फैसला करता है, तो यह समय समाप्त हो जाएगा। यदि उसे हेरोकू में अपलोड करने के लिए 30 से अधिक समय लगता है, तो S3 में स्थानांतरित करें, और प्रक्रिया, अनुरोध समय समाप्त हो जाएगा। अच्छे कारण के लिए, 30 का अनुरोध सिर्फ क्रोधित प्रदर्शन है।

इस ब्लॉग पोस्ट (और GitHub रेपो) बहुत उपयोगी है: http://pjambet.github.io/blog/direct-upload-to-s3/

इसके साथ

, आप डायरेक्ट-टू-S3 फ़ाइल काम कर अपलोड प्राप्त करने के लिए सक्षम होना चाहिए। आप अपलोड के बड़े हिस्से के लिए हेरोकू को मारने से पूरी तरह से बचें। Jquery-fileupload के कॉलबैक का उपयोग करके, फ़ाइल सफलतापूर्वक अपलोड होने के बाद आप एप्लिकेशन पर पोस्ट कर सकते हैं, और देरी_job का उपयोग कर पृष्ठभूमि में इसे संसाधित कर सकते हैं। आपके उपयोगकर्ताओं की पुष्टि करना कि अपलोड सफल है एक आवेदन समस्या है जिसे आपको केवल देखभाल करने की आवश्यकता है।

+0

यह भी देखें: http://stackoverflow.com/a/16341162/1546887 – Taavo

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