Delayed_job (Rails 2.3.8 앱에서 집단적 아이디어 v2.0)을 사용하는 데 어려움을 겪고 있습니다.'nil object'오류가 발생한 레일에서 Delayed_job
나는 application_controller 방법에서 작업을 호출하고 있습니다 : 워드 프로세서 ID와 파일의 이름과 해시입니다
...
Delayed::Job.enqueue(S3MoverJob.new(docs))
합니다.
class S3MoverJob < Struct.new(:docs)
def perform
#setup connection to Amazon
...
#connect
...
#loop to move files not transfered already
docs.each do |id,file_name|
# Move file
begin
doc = Document.find(id)
... perform actions
rescue Exception => exc
raise "failed!"
end
end
end
end
문제는이 제기 점입니다 : S3MoverJob은 NoMethodError 실패했습니다 : 당신이 그것을 기대하지 않았다 때이 전무 개체가 내 lib 디렉토리 디렉토리에서
나는 클래스 S3MoverJob있다!
나는 DB에, 핸들러에보고하고,이 같은 ID와 파일 이름의 목록과 함께 수행하는 방법에 YAML 파일을 제공했다 :
docs:
3456: name_of_file_01.png
4567: name_of_file_02.txt
나는 무엇을 놓치고? 도와 주셔서 감사합니다.
이전에 묻는 질문에 대해 일부 답변을 수락으로 표시 할 수 있습니다. 그렇지 않으면 아무도 대답하지 않으려 고합니다. –
stacktrace가 도움이 될 것입니다. – betamatt
[Worker (호스트 : iMac pid : 1789)] NoMethodError로 S3MoverJob이 실패했습니다. 수행하지 않았을 때 nil 개체가 있습니다 (작업자 (호스트 : iMac pid : 1789) 기대하지 마라! ActiveRecord :: Base의 인스턴스를 예상했을 수 있습니다. [작업자 (호스트 : iMac pid : 1789)] 작업이 1 회 처리 된 68.9376j/s, 1 개가 실패했습니다.)] NoMethodError와 함께 S3MoverJob이 실패했습니다 : 기대하지 않았을 때 객체가 없습니다! ' – Valadares