2013-08-01 3 views
0

우분투 서버에서 Rails 3.2 앱과 함께 Whenever gem을 사용하고 있습니다. 나는 그 달의 첫날에 달리고 싶은 월간 직업을 가지고 있지만 일하지 않는 것 같습니다.레일스 : 예약 된 작업이 실행되고 있지 않습니다.

코드가 작동한다는 것을 알고 있습니다. 서버가 실행되지 않았을 때 서버의 콘솔에서 실행했기 때문에 작동합니다. 나는 더 자주 (매시간, 매일) 운영되는 다른 직업을 가지고 있지만이 직업은 뛰지 않았다. 누군가 내가 뭘 잘못했는지 결정하도록 도울 수 있습니까? 내가 서버에 crontab -l을 실행하면

# schedule.rb 
every 1.month, :at => "beginning of the month at 3am" do 
    rake "users:update_monthly" 
end 

# lib/schedule.rake 
namespace :users do 

    task :update_monthly => :environment do 
    User.update_monthly 
    end 

end 

:이가 만성 구문 분석 문제처럼

# Begin Whenever generated tasks for: whenever_schedule 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/articles 

0 3 1 * * /bin/bash -l -c 'cd /var/deploy/foo/web_head/releases/20130801200106 && RAILS_ENV=production bundle exec rake users:update_monthly --silent' 

# End Whenever generated tasks for: whenever_schedule 

답변

0

것 같습니다. 이것은 작동 할 수 http://bjhess.com/blog/ruby_whenever_and_day_of_month_crontab_syntax_/ https://github.com/javan/whenever/issues/13

:

every 1.month, :at => 'January 1st 3:00am' do 
    rake "users:update_monthly" 
end 

또는이 : 나는이 두 블로그 게시물은 당신이 당신의 문제를 해결하는 데 도움이 될 수는 crontab을 같이 보이기 때문에

every 1.month, :at => 'start of the month at 9am' do 
    rake "users:update_monthly" 
end 

그것은 힘든 서버의 출력이 올바르게 보입니다.

+0

감사합니다. 나는 Cron이 옳다면 그것은 언제나 문제가 아니라고 생각합니다. Cron이 서버가 온라인 상태 일 때 트리거 할 수 없다고 생각하지 않습니까? 나는 심지어 다른 달을 기다리지 않고, 특히 짧은 기간이 이미 나를 위해 일하기 때문에 바꿀 때조차도 테스트하는 방법을 모르겠습니다. – yellowreign

관련 문제