使用Ruby On Rails在Heroku上运行长任务的最佳方法是什么?

时间:2015-06-02 12:58:52

标签: ruby-on-rails ruby heroku background-process

我正在寻找在Heroku中执行很长任务的最佳方法。

我使用Ruby On Rails作为我的Web应用程序,我有一个很长的任务,我希望每周星期天晚上运行它。大约需要15~20分钟。我已经Rufus-Scheduler了,但我不确定它是最有效的解决方案。

我还发现了Backgrounding Tasks in HerokuDelayed Job的内容。但这是处理它的最好方法吗?

感谢。

2 个答案:

答案 0 :(得分:5)

这就是我每天晚上跑的工作:https://devcenter.heroku.com/articles/scheduler

如果您的工作配置为rake任务,它的效果非常好。链接指南向您展示如何配置所有内容,甚至可以解决长时间运行的作业。

答案 1 :(得分:0)

Heroku建议不要使用Heroku Scheduler运行长时间运行的作业。

Heroku says,

  

计划的作业旨在执行短期运行的任务或将长期运行的任务排入后台作业队列。任何需要花费超过几分钟时间才能完成的操作,都应使用工人dyno来运行。

所以,我认为,最好的方法是使用Heroku Scheduler为每种作业(短期或长期)运行rake任务,但是如果任务花费的时间超过几分钟,那么我只需创建一个Background在该任务中完成任务。这样,调度程序将永远不会运行超过几分钟。