rails:在cron作业中运行rake任务

时间:2014-04-13 03:30:12

标签: ruby-on-rails linux cron rake

我正在尝试像这样在cron作业中运行rake任务

0 * * * *  cd /var/www/rails_path/rails && rake my_task RAILS_ENV=production

我可以运行此命令

cd /var/www/rails_path/rails && rake my_task RAILS_ENV=production

从shell获得结果。

我检查了公共区域的cron日志。但事实上,当cron作业执行时,rake任务没有运行(任务应该有日志,我在cron作业运行后没有看到这个rake任务的日志)。

问题是什么?

更新:

尝试了

0 * * * * /bin/bash -l -c "cd /var/www/rails_path/rails && rake my_task RAILS_ENV=production"

没有运气

安装了whenever gem并拥有

every 2.minutes do
   rake "my_task"
end
在./config/schdule.rb中。它根本没有运行(我在乘客的nginx中部署了rails)。

由于

1 个答案:

答案 0 :(得分:3)

试试这个:

0 * * * * /bin/bash -l -c 'cd your_app_path && RAILS_ENV=production bundle exec rake your_task'

或者,如果你想在cron中使用命令行rails,最好使用whenever gem。