2011-03-14 4 views
1

내 배경 작업에 Resque + RedisToGo를 사용하고 있습니다. Heroku에서 백그라운드 작업을 실행하는 데 문제가 있습니다. 이상한 점은 처음으로 배경 작업을 할 때 아무런 문제없이 실행된다는 것입니다. 하지만 다시 실행하면 실행되지 않습니다. 나는 "Heroku가 다시 시작 ', 배경이 성공적으로 완료하기위한 다른 모든 시간을 .... 실행해야Heroku의 Resque가 제대로 실행되지 않음

예를 들어

내 Resque 배경 행동에 다음 코드가있는 경우 :.

module EncodeSong 
    @queue = :encode_song 

    def self.perform(media_id, s3_file_url) 
    puts 'foobar' 

    media = Media.find(media_id) 

    puts 'media id is supposed to be here' 
    puts media.id 
    puts s3_file_url 
    end 
end 

에서을 "Heroku가 콘솔"내가 수행합니다. "Heroku가 로그"내가 처음으로 위의 코드를 실행할 때 4 "풋"을 참조하십시오 그러나 그것을 두 번째로 실행 만 반환 할 수 있습니다에서

Resque.enqueue(EncodeSong, 26, 'http://actual_bucket_name.s3.amazonaws.com/unencoded/users/1/songs/test.mp3') 

'foobar'다른 "puts"는 표시되지 않습니다 .....

두 번째로 "media = Media.find (media_id)"를 실행할 수 없다고 생각합니다. 이것은 Heroku의 프로덕션 서버에서만 발생합니다. 우리 지역 개발 기계에서는이 문제가 발생하지 않습니다.

추신. Heroku logs을 사용하도록 설정했지만 여전히 유용한 응답을 얻지 못했습니다. 이 tutorial을 따라 Resque로 Heroku를 설정합니다.

답변

0

작업이 실패한 것처럼 보입니다 (아마 'media = Media.find'행에 대한 것입니다). resque 관리 인터페이스를 살펴보십시오. 실패한 작업을 찾으십시오. 거기에서 각 실패한 작업의 백 트레이스를 찾을 수 있습니다.

희망이 도움이됩니다.

관련 문제