Работа cron не работает в ruby ​​на рельсах в производственном режиме - PullRequest
0 голосов
/ 09 сентября 2011

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 голосов
/ 09 сентября 2011

Вместо использования пользовательских задач capistrano я бы предложил загружать задачи capistrano, поставляемые всякий раз, когда gem.

Добавить в deploy.rb :

require 'whenever/capistrano'
...