我正在开发一个Ruby on Rails应用程序,它需要允许用户一次同时上传16张高质量的图像。
这通常意味着大约10-20兆字节(有时更多),但连接的数量正在成为最相关的问题。
这些图片是从回形针发送到亚马逊S3的,不幸的是,这16个文件中的每一个都打开和关闭了一个新的连接。不用说,我需要移动系统作为后台进程运行,以防止我的web服务器锁定,就像它已经没有流量一样。
我的问题是,在用于后台作业的所有基于Rails的系统(Starling、BackgroundRb、Spawn等)中,是否有一个系统可能比其他系统更适合这种场景(我对构建后台系统很陌生,所以所有可用的系统对我来说都是新的)?
发布于 2009-07-10 00:39:19
用于异步处理的rails插件并不缺乏,而且基本上所有这些插件都工作得很好。就我个人而言,我最喜欢Delayed Job的api。
我不会使用Starling或其他实际的队列守护进程,因为对于这个任务,使用数据库来存储任何必要的状态应该很好。
发布于 2009-07-20 06:02:44
这可能会有帮助!
http://aaronvb.com/blog/2009/7/19/paperclip-amazon-s3-background-upload-using-starling-and-workling
编辑:
通过普通的html多部分表单将文件发送到后台是不可能的。它们必须通过该请求来完成。如果你正在寻找一种绕过这个问题的方法,你可以尝试一下SWFUpload,然后使用一个后台进程来处理亚马逊的S3上传。
发布于 2010-07-22 06:08:49
这也是一篇很好的调查博客文章http://4loc.wordpress.com/2010/03/10/background-jobs-in-ruby-on-rails/
https://stackoverflow.com/questions/1107127
复制相似问题