繁体   English   中英

麒麟上传文件时发生超时错误

[英]Timeout error from unicorn while uploading a file

我在Heroku上使用独角兽。 我遇到的问题之一是文件上传。 我们使用载波进行上传,基本上,即使文件大小约为2MB,在完成50-60%的上传时,Unicorn也会超时。

在本地进行测试时,我们没有使用独角兽,对于本地大文件,我也没有任何问题(尽管文件是通过carrierwave上载到AWS的,就像生产和登台一样)。 但是,在登台和生产服务器上,我看到我们超时了。

有解决此问题的策略吗? 我不确定是否可以延迟上传此文件(因为我需要向用户确认该文件确实已成功上传)。

谢谢! 林哥

如果要通过Heroku将大文件上传到S3,则无法合理地避免超时。 如果有人决定上传较大的文件,则会超时。 如果上传到Heroku,转移到S3并处理的时间超过30秒,则请求将超时。 同样有充分理由的,30秒的请求也只是糟糕的性能。

这篇博客文章(和github仓库)非常有帮助: http : //pjambet.github.io/blog/direct-upload-to-s3/

有了它,您应该能够直接将文件上传到S3。 您完全避免点击Heroku进行大部分上传。 使用jquery-fileupload的回调,您可以在文件成功上传后发布到您的应用程序中,并使用delay_job在后台对其进行处理。 向您的用户确认上传成功是您需要解决的应用程序问题。

听起来您的超时设置太低。 您的独角兽配置是什么样的?

参见https://devcenter.heroku.com/articles/rails-unicorn作为一个好的起点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM