【发布时间】:2014-01-20 16:03:42
【问题描述】:
在我正在构建的 RoR 应用程序中,管理员可能会上传一个(相对较小的)文件,然后需要对其进行处理(这需要相对较长的时间)。由于此应用程序在 Heroku 上运行,我想在工作人员测功机上进行处理,以免占用网络测功机。我们正在使用delayed_job gem 进行排队。
想知道最好的方法是什么 - 我考虑过的几个通用解决方案:
将文件上传到 S3 并让工作人员从 S3 中获取它。缺点:出于各种原因,我宁愿不添加 S3 依赖项,而且我们不会在处理后保留文件。
将文件读取为字符串,然后当作为参数传递给延迟方法时,
delayed_job将其放入数据库中。然后,处理作业可以将其转换回所需的格式。
第二种解决方案有什么缺点吗?它似乎可以工作,但不确定它是否理想。还有其他推荐的做事方式吗?
【问题讨论】:
标签: ruby-on-rails heroku delayed-job worker