如何使用CRON定期运行rake任务?

时间:2014-10-26 13:58:48

标签: ruby-on-rails ruby cron rake rake-task

我为Rails应用程序编写了一个rake任务,并且我需要使用CRON定期运行此任务。

如果我有一个需要用CRON ping的URL,我这样做:

0 */6 * * * curl https://www.website.com/something

但是如何" ping"一个耙子任务?

该应用程序位于/home/deployer/apps/myapp-production/current,正在DigitalOceal(Ubuntu服务器 - nginx)上运行。

感谢。

编辑:这是我的命令:

0 */6 * * * cd /home/deployer/apps/myapp-production/current && RAILS_ENV=production bundle exec rake db:backup

但输出是:

/bin/sh: 1: bundle: not found

当我在笔记本电脑上(本地)只运行rake db:backup时,一切正常。

CRON任务中的路径是否错误?

EDIT2:当我从命令行手动运行命令cd /home/deployer/apps/myapp-production/current && RAILS_ENV=production bundle exec rake db:backup时,一切正常,但不是来自CRON。

1 个答案:

答案 0 :(得分:1)

使用whenever gem。它提供了很好的DSL,如:

every :day, :at => '12:20am', :roles => [:app] do
  rake "app_server:task"
end