2011-10-21 23 views
11

पर बड़ी फ़ाइल अपलोड करते समय हेरोोकू टाइमआउट मुझे अपने आवेदन के साथ रिफिनरीसीएमएस 1.0.8 पर आधारित है जो उसकेोकू पर तैनात है।एस 3

हेरोकू में 30 सेकंड का अनुरोध समय है। रिफाइनरीसीएमएस व्यवस्थापक के माध्यम से फ़ाइल अपलोड करने पर 4 एमओ अपलोड करते समय, यह अनुरोध करने के लिए कभी-कभी 30 सेकंड से अधिक समय ले जाएगा (ज्यादातर को फ़ाइल को s3 पर अपलोड करने की आवश्यकता के कारण)।

इस मामले में, dyno "जमे हुए" और लगभग 30 मिनट के लिए उत्तरदायी नहीं होगा (इस समय के दौरान हर अनुरोध एच 12 त्रुटि अनुरोध टाइमआउट द्वारा)। यह व्यवहार वास्तव में क्या this discussion

में अंतिम संदेश में क्रिस्टोस का वर्णन इस other discussion और the heroku documentation से है: "एस 3 को सीधे अपलोड पसंदीदा तरीका है अगर आप रहे फ़ाइल अपलोड 4MB से भी बड़ा काम करने के साथ विचार है। अपने dyno पर हॉप को छोड़ने के लिए, अंतिम उपयोगकर्ता ब्राउज़र से सीधे कनेक्शन से S3 तक कनेक्शन बनाना। "

एस 3 पर सीधा अपलोड समाधान होना चाहिए लेकिन रिफाइनरीसीएमएस/ड्रैगनफ्लाई/कोहरे के साथ इसे ठीक से लागू करने के लिए यह मुश्किल लग रहा है। मुझे यकीन नहीं है कि यह उपकरण उपकरण में बड़े संशोधन के बिना संभव है और मैं सोच रहा हूं कि कोई विकल्प है या नहीं।

आपकी मदद के लिए धन्यवाद

उत्तर

4

वास्तव में नहीं। हेरोोकू टाइमआउट पत्थर की चीज में एक सेट है जिसे आपको आसपास काम करने की आवश्यकता है। एस 3 पर प्रत्यक्ष अपलोड एकमात्र विकल्प है, कुछ प्रकार के पोस्ट-अपलोड प्रोसेसिंग की आवश्यकता होती है।

वहाँ CarrierWaveDirect जैसे समाधान हैं, लेकिन मुझे नहीं पता कि रिफाइनरी के साथ इसका उपयोग करना कितना आसान होगा।

+0

यह वास्तव में पत्थर में सेट नहीं है। यदि आप किसी इवेंट किए गए समाधान (उदाहरण के लिए, इवेंटलेट) का उपयोग करते हैं, तो आप टाइमआउट उच्च (मैं बस 60 सेकंड तक सेट कर सकता हूं और 48 सेकंड सफलतापूर्वक अपने आवेदन में एक फोटो अपलोड कर सकता हूं), और हेरोोकू परवाह नहीं करेगा, क्योंकि यह गैर- अवरुद्ध। –

-4

आप अपने आवेदन में यूनिकॉर्न जोड़ने का प्रयास कर सकते हैं।

config/unicorn.rb

worker_processes पूर्णांक (ENV [ "WEB_CONCURRENCY"] || 3)

टाइमआउट 180 # < < यूनिकॉर्न टाइमआउट एक लंबे समय तक अपलोड समय की अनुमति देगा।

preload_app सच

before_fork करना | सर्वर, कार्यकर्ता |

https://devcenter.heroku.com/articles/rails-unicorn

+0

क्या यह हेरोकू टाइमआउट ओवरराइड करता है? – superluminary

+0

रेलों का उपयोग करते समय यह 180 सेकंड के लिए अनुमति देता है जिसने मेरे एस 3 अपलोड को समाप्त करने की इजाजत दी - मुझे लगता है कि हरोकू को यूनिकॉर्न में जो भी टाइमआउट सेट किया गया है, वह चूक जाता है। – BIT

+2

हेरोकू राउटर ऐप यूनिकॉर्न कॉन्फ़िगरेशन में जो भी सेट है, उसके लिए डिफ़ॉल्ट नहीं है। –