2011-08-08 2 views
4

이것은 내 일정 파일의 코드입니다. 나는 그저 작동하는지 여부를 테스트하기 위해 1 분을 사용하고 있습니다.cron 작업이 레일에서 작동하지 않을 때마다 3

whenever --set environment=development --update-crontab 1mintesting 

단자 나 설정에서

every 1.minutes do 
    runner "User.update_all('daily_sms_count' = 0)" 
end 

무엇이 문제?

+0

언제든지 개발 모드에서 제대로 실행되지 않는다고 생각합니다. 나는 또한 그것에 문제가 있었다. 생산에서 서버를 시작하고 작동하는지 확인하려고 했습니까? – tmaximini

+0

@frank yaa .. u .. 맞아 .. 그 개발 모드에서 작동하지 .. 완벽하게 서버에서 잘 작동 .. 감사합니다 형제 .. –

답변

6

RVM을 사용하고 있습니까? 이것은이 새로운 bash 쉘을 회전로는 반드시 프로젝트의 루비 버전 및 관련 gemset을 사용된다는 것을 의미합니다

* * * * * /bin/bash -l -c 
'cd /Users/myuser/Documents/Projects/foo && script/rails runner -e 
development '\''User.update_all("daily_sms_count" = 0)'\''' 

: 그렇다면, 때마다 이런 crontab을 항목을 생성합니다. 이 작업을 수행하려면 프로젝트의 루트 폴더에 적절한 .rvmrc 파일을 추가해야합니다. 이 방법으로 생성 된 crontab 항목의 cd /Users/myuser/Documents/Projects/foo 부분은 적절한 RVM 설정이 사용되는지 확인합니다. .rvmrc 파일을 추가 할 때 cd..을 프로젝트에 다시 추가하여 RVM이 프로젝트의 .rvmrc을 인식하도록하십시오.

RVM을 사용하지 않는 경우 crontab -l을 실행하고 생성 된 항목을 복사 한 다음 터미널에서 실행하여 오류없이 실행되는지 확인하십시오.

Mac을 사용하는 경우 cron은 로그 메시지를 사서함에 보내고 mail 명령을 사용하여 볼 수 있습니다.

이러한 트릭이 작동하지 않으면 작업 환경 (OS, RVM 등)에 대한 자세한 정보를 제공하여보다 많은 도움을 받으십시오.

+0

'mail' 명령은 Mac에서 나를 위해 작동합니다. 나는 매 10,20 분/시간/일마다 메시지가 나타나는 것을 보지 않고있다. 왜 그런가요? – Biketire