在生产模式下,cron job不能在ruby上工作

时间:2011-09-09 09:23:12

标签: ruby-on-rails ruby-on-rails-3 cron scheduled-tasks

Cron作业无法在rails 3中工作。我正在使用gem这是我正在使用的代码。

schedule.rb文件

every 1.hours do
    command "cd /home/me/my_app/current"
    rake "thinking_sphinx:index RAILS_ENV=production"
end

every 1.day, :at => '12.01 am' do
   command "cd /home/me/my_app/current"
   rake "messages_counter_for_user_and_group RAILS_ENV=production"
   command "cd /home/me/my_app/current"
   runner "RAILS_ENV=production  User.update_all(:daily_message_count => 0)"  
end

来自capistrano部署脚本: -

task :long do
transaction do
  cron_tab_activate
end

task:cron_tab_activate, :roles=>:app do
 send(run_method, "cd #{current_path} && RAILS_ENV=#{stage}  whenever --update-crontab test ")
end  

我正在使用rvm。 Ruby 1.9.2,Rails 3.0.10

1 个答案:

答案 0 :(得分:0)

我建议加载由gem提供的capistrano任务,而不是使用自定义的capistrano任务。

添加到 deploy.rb

require 'whenever/capistrano'