我为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。
答案 0 :(得分:1)
使用whenever gem。它提供了很好的DSL,如:
every :day, :at => '12:20am', :roles => [:app] do
rake "app_server:task"
end