2012-11-27 3 views
1

Rails 2.3.5를 실행 중입니다. 내가 lib에있는 내 프로젝트에서 rake ts : rake 태스크 내에서 인덱스 실행

/작업 다음 레이크 작업 (test_task.rake) :

13 14 * * * cd /sites/project/app && /sites/ruby/bin/rake RAILS_ENV=staging test_task 
:

desc 'test_synchro_task' 
task :test_synchro_task => :environment do 
    # A bunch of things that are properly executed (basically I am inserting 
    # in the database)... 
    # ... 
    # and once the above is done, I want the following to be executed, 
    # the sphinx index to be rebuild, but it is NOT : 
    system("cd /sites/project/app") 
    system("RAILS_ENV='staging' rake ts:index") 
end 

나는 다음과 같은 항목을 포함하는 crontab을 통해 작업의 실행을 트리거

id는 작업에서 2 개의 시스템 행을 제외하고 올바르게 호출되고 실행됩니다.

유의하시기 바랍니다 내 프로젝트의 스크립트 디렉토리에 루비 test.rb 파일에 그 2 개 시스템 라인을 배치하고 수동으로 루비 명령을 사용하여 실행하면 그 2 개 시스템 명령이 제대로 실행

ruby test.rb 

을 인덱스가 올바르게 다시 작성됩니다.

또는

@cmd="cd /sites/project/app; RAILS_ENV='staging' rake ts:index" 
`#{@cmd}` 

이 아니라 레이크 TS : 내 레이크 작업에서는

나는 의해 그 2 개 시스템 라인을 교체 시도 지수가 여전히 실행되지 않습니다.

왜 그런가?

감사합니다.

이브

+0

분명히하기 위해. 내 게시물에 오타가 있습니다. 설명 및 작업 이름은 실제로 OK입니다. 즉, test_task 및 not test_synchro_task입니다. – user1857699

답변

0

문제 해결 : 루비 스크립트에서

1

, 나는 $? exitstatus는 "을 (를) 찾을 수 없습니다"명령이다, 127 것을 발견했다.

2 이것은 cron의 문맥에서 발생하는 PATH 문제를 암시합니다.

3- 게시물을 찾았습니다. http://dewful.com/?p=157은 "루비 스크립트로 작동하지 않습니다"라고 제목을 붙였습니다.

4 - crontab에 PATH를 추가하면 모든 것이 잘 동작합니다.

이브

관련 문제