我必须定期执行一个相当数据库密集的任务。我正在使用rails来处理与此任务相关的应用程序,因此为了方便起见,我想知道如何使用rails最好地实现cron作业。我知道rake是一种解决方案,但我完全不知道如何使用它。
感谢。
答案 0 :(得分:3)
javan-每当看到另一件好事时。
答案 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)
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很好,它将作业的详细信息存储在数据库中。