Рабочий шаг Ruby-on-Rails Whenever by Javan

Я всегда слежу за railscast с помощью учебника по javan, но, похоже, не могу этого сделать. Обязательно ли устанавливать capistrano для работы cron? это потому, что у меня нет deploy.rb. Я подробно перечисляю шаги. Если я пропустил какие-либо шаги, из-за которых мой cron не работает? Я всегда получаю отчет о том, что я получил новую почту, но я не отправлял никаких операций с электронной почтой.

Шаг 1:

wheneverize .

====> schedule.rb в папке конфигурации

Шаг 2: [Scheduler.rb]

every '1 * * * *' do
   runner 'Company.count'
end

Шаг 3: [что такое «магазин»?]

whenever --update-crontab store

Шаг 4: [config/deploy.rb]‹ — у меня нет файлов развертывания, поэтому я создаю их самостоятельно.

after "deploy:symlink", "deploy:update_crontab"  

namespace :deploy do  
  desc "Update the crontab file"  
  task :update_crontab, :roles => :db do  
     run "cd #{release_path} && whenever --update-crontab #{application}"  
  end  
end 

Шаг 5:

whenever --update-crontab store

crontab -l

Что я пропустил? почему это не сработало? Пожалуйста, просветите меня шаг за шагом, потому что я новичок в ROR .. спасибо.


person shoujo_sm    schedule 04.04.2012    source источник


Ответы (1)


В Документы Whenever есть пример развертывания Whenever с помощью Capistrano. Просто добавьте следующее в начало конфигурации развертывания Capistrano.

set :whenever_command, "bundle exec whenever"  # set this first if using bundler
require "whenever/capistrano"

Затем Whenever будет установлен в cron как часть развертывания.


ОБНОВЛЕНИЕ

Чтобы проверить, что Всегда был успешно обновлен cron, ssh на целевую машину в качестве пользователя Capistrano, разверните для целевой машины и запустите crontab -l. Вы должны увидеть вывод, похожий на этот:

crontab -l

# Begin Whenever generated tasks for: app_name
0 0 * * * /bin/bash -l -c 'cd /opt/path/app_name/releases/20120321133343 && RAILS_ENV=production rake group:task --silent'

0 3 * * 6 /bin/bash -l -c '/opt/path/app_name/shared/bin/script'

# End Whenever generated tasks for: app_name
person mguymon    schedule 04.04.2012
comment
в файле deploy.rb? и пакетная установка подойдет? - person shoujo_sm; 04.04.2012
comment
Да, в deploy.rb. Когда вы развертываете, Whenever будет использовать пакет для обновления cron в цели развертывания. - person mguymon; 04.04.2012