在使用 Rails 的 Heroku 上运行 Unicorn 时,我试图允许大量上传,但我意识到任何大量上传可能需要比 Unicorn worker 超时时间更长的时间。这将意味着(我已经看到这种情况发生了)Unicorn 主进程将杀死上传大文件的工作人员并且请求将超时(出现 503 错误)。
在不删除或大量增加我的服务器超时的情况下,有什么方法可以让上传工作人员在上传完成时挂起?或者,我是否完全误解了,很可能是其他原因导致我的上传超时?
最佳答案
如果您在 unicorn 前使用 nginx 作为反向代理,您可以使用 Upload Module .配置后,nginx 处理上传并将其存储在/tmp 目录中,然后您的 unicorn 获取请求参数,告诉它上传的 Assets 在哪里及其内容类型。不再有工作人员忙于接收上传。
如果您真的不想在与您的网络服务相同的服务器上上传,而是将其存储在 S3 中,您应该遵循@Neil Middleton 的建议并进行设置,以便上传直接到那里。
关于ruby-on-rails - Unicorn + Rails + 大型上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9592664/