Cron作业已安排,但未运行rake任务

时间:2011-08-03 19:07:46

标签: ruby-on-rails cron rake rvm

我正在努力让一个cron工作运行。这就是我所拥有的:

*/1 * * * * cd /home/jose/work/Cronox/lib/tasks/rake wines:destroy_wines >> /home/jose/crontab_errors.txt

我的任务如下:

namespace :wines do
  desc "delete all wines"
  task :destroy_wines => :environment do |t|
    Wine.delete_all!
  end
end

如果我使用此命令: tail -f / var / log / syslog 我可以看到这个:

(jose) CMD (cd /home/jose/work/Cronox/lib/tasks/rake wines:destroy_wines >> /home/jose/crontab_errors.txt)

每一分钟,但它什么都不做。我也在使用 rvm 这与它有什么关系吗?

还有一件事:手动执行时,任务正常。

我缺少什么,

请帮助我!

3 个答案:

答案 0 :(得分:3)

我使用了与Jeff的答案类似的东西,但是我必须调用bundle exec来使rake任务正常运行,为此我必须使用rvm do命令。完整的cronjob看起来像这样:

*/15 * * * * cd /path/to/rails/app && /path/to/rvm 1.9.3-p392 do bundle exec rake RAILS_ENV=production my:rake:task >> tasks.log 2>&1

答案 1 :(得分:3)

我创建了一个示例,这是命令行:

 /bin/bash -l -c 'cd /home/myusername/rails_apps/yourapplicationname && RAILS_ENV=production bundle exec rake admin:update_folios --trace --silent >> log/error_updating_folios.log'

您可以在此处找到完整指南:

http://heridev.com.mx/ruby/how-to-create-a-cron-job-for-ruby-on-rails-application-in-a-server-wich-uses-cpanel/

干杯!

答案 2 :(得分:2)

你没有调用rake,你只需要更改目录。尝试

*/1 * * * * cd /home/jose/work/Cronox/ && rake wines:destroy_wines >> /home/jose/crontab_errors.txt