【问题标题】:Unicorn + Rails + Large Uploads独角兽 + Rails + 大量上传
【发布时间】:2012-03-06 22:05:07
【问题描述】:

在使用 Rails 在 Heroku 上运行 Unicorn 时,我试图允许进行大型上传,但我意识到任何大型上传可能需要比 Unicorn 工作人员的超时时间更长的时间。这将意味着(我已经看到这种情况发生)Unicorn 主进程将杀死上传大文件的工作人员,并且请求将超时(出现 503 错误)。

如果不删除或大幅增加我的服务器的超时时间,是否有任何方法可以让上传工作人员在上传完成时挂起?或者,我是否完全误解了,并且很可能是其他原因导致我的上传超时?

【问题讨论】:

    标签: ruby-on-rails http heroku unicorn


    【解决方案1】:

    如果你在你的独角兽面前使用 nginx 作为反向代理,你可以使用Upload Module。配置后,nginx 处理上传并将其存储在 /tmp 目录中,然后您的独角兽获取请求参数,告诉它上传的资产在哪里以及它的内容类型。不再有工作人员为接收上传而受束缚。

    如果您真的不希望在与您的网络服务相同的服务器上上传,而是将其存储在 S3 中,您应该按照@Neil Middleton 的建议进行设置,以便直接上传。

    【讨论】:

      【解决方案2】:

      如果您要上传到 S3,那么您可以“简单地”让用户将文件直接上传到 S3,而不是通过您的测功机,并在上传完成后得到 ping。

      如需了解更多信息,请查看 CarrierWaveDirect

      【讨论】:

      • 我使用的是CarrierWaveDirect,但是我还是要增加unicorn worker的超时时间,因为如果文件上传时间过长他们会崩溃,即使你使用的是CarrierWaveDirect。
      猜你喜欢
      • 2015-09-27
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      相关资源
      最近更新 更多