3

我正在开发一个 Ruby on Rails 应用程序,该应用程序需要允许用户一次同时上传 16 个高质量图像。

这通常意味着大约 10-20 兆字节(有时更多),但连接数正在成为最相关的问题。

图像从 Paperclip 发送到 Amazon S3,不幸的是,它为 16 个文件中的每一个打开和关闭了一个新连接。不用说,我需要移动系统以作为后台进程运行,以防止我的 Web 服务器像没有流量一样被锁定。

我的问题是,在所有用于后台作业的基于 Rails 的系统(Starling、BackgroundRb、Spawn 等)中,是否有一个比其他系统更适合这种情况(我是新手无论如何构建一个后台系统,所以所有可用的系统对我来说都是新的)?

4

4 回答 4

2

不乏用于异步处理的 Rails 插件,基本上它们都可以正常工作。我个人最喜欢Delayed Job的 api。

我不会使用 Starling 或其他实际的队列守护程序,因为对于此任务,使用数据库存储任何必要的状态应该没问题。

于 2009-07-10T00:39:18.910 回答
1

这可能会有所帮助!

http://aaronvb.com/blog/2009/7/19/paperclip-amazon-s3-background-upload-using-starling-and-workling

编辑:

不可能通过普通的 html 多部分表单将文件发送到后台。他们必须通过那个请求来完成。如果您正在寻找解决方法,您可以尝试 SWFUpload,然后在完成后使用后台进程来处理 Amazon S3 上传。

于 2009-07-20T06:02:44.493 回答
0

这也是一篇很好的调查博客文章http://4loc.wordpress.com/2010/03/10/background-jobs-in-ruby-on-rails/

于 2010-07-21T22:08:49.400 回答
0

我喜欢 swfupload,我们在我们编写的一些 S3 应用程序上使用它。它被证明是非常快速和稳定的。您可以在上传后通过 Ajax 触发操作,等等……我们有大量的上传通过它,失败率为 0。

于 2010-12-31T18:02:54.457 回答