如何使用rails设置cron作业?

时间:2010-08-14 23:46:06

标签: ruby-on-rails ruby cron rake

我必须定期执行一个相当数据库密集的任务。我正在使用rails来处理与此任务相关的应用程序,因此为了方便起见,我想知道如何使用rails最好地实现cron作业。我知道rake是一种解决方案,但我完全不知道如何使用它。

感谢。

4 个答案:

答案 0 :(得分:3)

javan-每当看到另一件好事时。

http://github.com/javan/whenever

答案 1 :(得分:1)

只需实现您的脚本以执行您需要的任何操作,然后使用来自cron作业的script/runner调用它。

0 * * * * cd /path/to_your/app && RAILS_ENV=production script/runner scripts/my_maintenance_script.rb

这将在每小时一次生产环境的上下文中启动my_maintenance_script.rb。非常裸机,但它会完成工作。

答案 2 :(得分:0)

用于云部署的Capistrano插件

rubber提供了一组用于管理cron作业的帮助程序脚本。但是,这些脚本完全独立于橡胶。

如果从http://github.com/wr0ngway/rubber/tree/master/lib/generators/vulcanize/templates/base/script/获取“cron-rake”,“cron-runner”和“cron-sh”脚本并将它们放在Rails项目的脚本/目录中,那么你应该对走。不要忘记让它们可执行。

大多数实际工作都是在“cron-sh”中完成的。 “cron-rake”是用于运行rake任务的便利包装器。 “cron-runner”是运行任意Ruby的便利包装器(很像脚本/运行器提供)。

答案 3 :(得分:0)

delayed_job很好,它将作业的详细信息存储在数据库中。

相关问题