Rails - 在Heroku上创建“巨大的”XML文件

时间:2012-11-16 17:52:11

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

每月一次,我需要在我的Rails应用程序中创建近40MB的XML文件并保存此文件。作为存储,我使用Amazon S3平台。当我在localhost(Webrick服务器)上执行此任务时,此任务需要5分钟=>该文件保存在亚马逊的存储桶中。一切都很开心。

但是当我在Heroku上运行此任务时,该应用程序没有响应45分钟,并且该文件未保存在亚马逊中。

我知道heroku允许运行任务仅30秒,但在此时间后显示错误消息并且任务在后台运行。虽然此操作是应用程序“空闲”。

但是,怎么可能没有创建和保存文件? Heroku对文件传输有什么限制吗?

我花了一整个下午的时间来搜索问题,但直到现在还没有成功。 提前致谢

1 个答案:

答案 0 :(得分:0)

我很确定这个过程会在30秒后被杀死,而不是像你建议的那样在后台运行。使用delayed_job获取背景,详见此处:https://devcenter.heroku.com/articles/delayed-job。如果你有一个创建和传输文件的方法,你可以使用delayed_job的延迟方法。请注意,delayed_job会旋转自己的小环境。所以在我的情况下,我将文件写入tmp,然后将其传输到S3并注意所有必须在同一个作业中完成,因为当第一个作业完成时tmp目录蒸发。