【问题标题】:Timeouts with Heroku rails app with storage on S3Heroku rails 应用程序在 S3 上的存储超时
【发布时间】:2013-05-24 22:04:58
【问题描述】:

我有一个使用 rails 3.2 的应用程序,在 heroku 上运行并存储在 S3 上。用户可以选择上传照片,这些照片使用carrierwave/MiniMagick 处理成各种尺寸。

我们看到的问题是 30% 的时间,浏览器会超时。上传代码(最多可以上传四张图片)如下所示: 我正在使用carrierwave_backgrounder 来延迟图像处理,但我们仍然有超时。这适用于相当小的图像 - 通常是 150KB 的 PNG。

mount_uploader :image1, ImageUploader
process_in_background :image1

mount_uploader :image2, ImageUploader
process_in_background :image2

mount_uploader :image3, ImageUploader
process_in_background :image3

mount_uploader :image4, ImageUploader
process_in_background :image4

这是我们看到的错误

app[web.1]: Started POST "/offices" for 197.16.140.27 at 2013-05-23 23:32:18 +0000
app[web.1]: E, [2013-05-23T23:32:49.042937 #2] ERROR -- : worker=0 PID:10 timeout (31s > 30s), killing

瘦身和独角兽都会发生同样的事情。

我所做的阅读表明我应该直接上传到 S3,但是图像处理会延迟,这对我来说是个问题(延迟/复杂性)。我应该做些什么不同的事情?

【问题讨论】:

    标签: ruby-on-rails heroku amazon-s3 carrierwave


    【解决方案1】:

    John 是对的:当您直接上传到 heroku 时会发生这种情况。我写了一些处理heroku上传的策略here

    【讨论】:

    • 谢谢你 - 你的链接真的很有帮助。我将研究使用客户端库或 cloudinary 而不是上传到 heroku
    • 我开始使用cloudinary,我所有的问题都是历史!感谢您的提示
    【解决方案2】:

    这是上传的常见问题,只能通过直接上传到 S3 并在完成后执行处理来解决。您遇到的问题是用户连接速度,如果来自手机,与在快速互联网上从某人上传的相同文件相比,它需要 30 秒的时间。您根本没有做错任何事情,恐怕不同的服务器也不会有所作为。

    【讨论】:

    • 谢谢 - 我会调查直接上传
    猜你喜欢
    • 1970-01-01
    • 2013-03-15
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-14
    • 2015-01-20
    相关资源
    最近更新 更多