2012-04-04 3 views
1

javan 튜토리얼을 사용하면 railscast를 따라야하지만 나는 그렇게 할 수없는 것처럼 보입니다. cron 작업을 수행하려면 capistrano를 설치해야합니까? 그것은 deploy.rb가 없기 때문입니다. 나는 그 단계들을 세부적으로 열거한다. 내 cron이 작동하지 않도록 놓친 단계가 있다면? 나는 항상 새로운 메일을 받았지만 이메일 작업을 보내지 않았다는 보고서를 받는다.Ruby-on-Rails Javan 작업 단계가 될 때마다

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에서 초보자이기 때문에 단계적으로 가르쳐주세요 .. 고마워요. Whenever docs

답변

2

카피 스트라 노와 때마다를 배포의 예를 가지고있다. Capistrano 배포 설정 상단에 다음을 추가하면됩니다.

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

그런 다음 은 배포의 일부로 크론에 설치됩니다 때마다. 카피 스트라 노의 대상 시스템에 대한 사용자를 배포하고 crontab -l을 실행으로


UPDATE는 가 성공적으로 업데이트 될 때마다 크론, 대상 시스템에 ssh를을 테스트합니다. 다음과 비슷한 출력이 표시되어야합니다.

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 
+0

(deploy.rb 파일)? 번들 설치를 수행합니까? –

+0

예, deploy.rb에 있습니다. 배포 할 때 번들을 사용하여 배포 대상에서 cron을 업데이트 할 때마다 – mguymon

+0

실제로 작동하는지 여부를 테스트 할 수있는 방법을 알고 있습니까? –

관련 문제