2014-06-07 2 views
2

RVM 환경을 사용하고 있습니다. 루비 버전 : 2.1.2 레일 : 4.1.1RVM으로 작업하지 않을 때마다 Cron +

schedule.rb : 

    every 1.minute do 
    runner "note.send_mail" 
    end 

나는 크론 탭을 업데이트 할 whenever --update-crontab을 사용했다.

crontab -l을 사용하여 작업을 확인할 때 적절한 시간을 설정하지 않으면 아래와 같이 나타납니다. 크론 작업이 작동하지 않습니다.

* * * * * /bin/bash -l -c 'cd /Desktop/folder1/blog2 && bin/rails runner -e production '\''note.send_mail'\''' 

이 문제를 해결할 수있는 사람이 있습니까? 감사!

+1

crontab 시간 형식은'minutes hours day_of_month month day_of_week'이므로 모든 1. 분이 실제로는 * * * * *로 표시되어야합니다. 2 분마다 '*/2 * * * *'가되고 1 시간마다'0 * * * *'("분이 0 일 때마다")이됩니다. 모든 6.hours는'0 */6 * * *' –

+1

러너가 아마 작동하지 않을 것입니다, 나는'runner "Note.send_mail"또는 그와 비슷한 것일 것입니다. –

답변

2
당신의 ~/.rvmrc 파일

이동하고 다음을 추가

rvm_trust_rvmrcs_flag=1 

을 다음 whenever --update-crontab 다시. README of whenever에 따르면 :

프로덕션 환경에서 RVM (Ruby Version Manager)을 사용하는 경우 cron 작업이 중단되는 잡아 당김이 발생합니다. 이것은 Whenever와 직접 관련이 없으며 디버깅하기가 까다로울 수 있습니다. .rvmrc 파일을 신뢰할 수 있어야합니다. 그렇지 않으면 파일을 신뢰할 수있을 때까지 cron 작업이 중단됩니다. 해결책이있는 사용자 RVM 파일에이 줄을 추가하여 프롬프트를 비활성화하는 것입니다 ~/.rvmrc

rvm_trust_rvmrcs_flag = 1

이 모든 rvmrc 파일을 신뢰 RVM을 알려줍니다.

그래도 문제가 해결되지 않으면이 페이지에서 언급 된 다른 해결책을 시도하십시오 : RVM-Notes.

+0

어디서나 .rvmrc 파일을 볼 수 없습니다 ... 보통 어디입니까? 내가 보는 것은 etc/rvmrc 파일뿐입니다. 나는 그 입구를 거기에 추가했다. 하지만 잘 작동하지 않습니다. – user2569524

+0

@ user2569524 리눅스 배포판을 사용한다고 가정하면'.rvmrc' 파일이 사용자 홈 폴더에 있어야합니다. 그러한 파일이 없으면 파일을 만드십시오. 그러나, 점으로 시작하는 파일 ('.')이 Linux에서는 숨겨지기 때문에 파일이 존재하지 않는지 확인하십시오. –

+0

이 파일은 cron 작업이 rvm 환경을로드하지 않는다는 사실을 어떻게 변경합니까? –

0

당신이 원하는 루비 버전과 gemset와 [email protected] 교체

job_type :runner_with_rvm, 'source /etc/profile.d/rvm.sh; cd :path;rvm [email protected] do bundle exec script/rails runner -e :environment ':task' :output' 

every 1.minute do 
    runner_with_rvm "Note.send_email" 
end 

같은로드 명령 줄에서 RVM 사용자 정의 주자를 정의 할 수 있습니다.

/etc/profile.d/rvm.sh이 환경에있는 것일 수도 있습니다.

+0

runner_with_rvm 정의에 구문 오류가있는 것 같습니다. '''/home/user/.rvm/gems/ruby-2.2.2bb/gems/whenever-0.9.4/lib/whenever/job_list. rb : 25 :'instance_eval ': config/schedule.rb : 1 : 예기치 않은 tSTRING_BEG 구문 오류, keyword_do 또는'{ '또는'('(구문 오류)) ...주자 -e : 환경 ': 작업': 출력 ' ...''' –

관련 문제