2013-09-26 74 views
6

我在Heroku上使用獨角獸。我遇到的問題之一是文件上傳。我們使用carrierwave進行上傳,並且基本上,即使對於大小約2MB的文件,在上傳完成50-60%時,Unicorn也會超時。上傳文件時獨角獸超時錯誤

我們在本地測試時沒有使用獨角獸,本地也沒有大文件的問題(儘管使用carrierwave將文件上傳到AWS,就像使用production + staging一樣)。但是,在生產服務器上,我看到我們超時。

解決此問題的任何策略?我不確定我是否可以將此文件上傳到延遲作業中(因爲我需要向我的用戶確認文件確實已成功上傳)。

謝謝! Ringo

+0

你可以嘗試在本地使用獨角獸嗎? –

回答

0

聽起來像您的超時設置太低。你的獨角獸配置是什麼樣的?

請參閱https://devcenter.heroku.com/articles/rails-unicorn以獲得良好的起點。

+1

我的獨角獸超時時間爲15,最高可達30,但沒有區別。我寧願設計一個不依賴於增加超時的解決方案。 –

2

如果您通過Heroku將大文件上傳到S3,則無法合理避免超時。如果有人決定上傳一個大文件,它會超時。如果上傳到Heroku的時間超過30秒,轉移到S3並處理,請求將超時。也有很好的理由,30多歲的要求只是糟糕的表現。

本博客文章(和GitHub庫)是非常有幫助的:http://pjambet.github.io/blog/direct-upload-to-s3/

有了它,你應該能夠得到直接到S3文件上傳工作。您完全避免大量上傳Heroku。使用jquery-fileupload的回調函數,您可以在文件成功上傳後發佈給應用程序,並使用delayed_job在後臺處理它。確認您的用戶上傳成功是您需要處理的應用程序問題。

+0

另請參閱:http://stackoverflow.com/a/16341162/1546887 – Taavo