현재 백그라운드 대기열에 많은 행운이 없습니다. Resque를 작동 시키려고합니다. 나는 redis와 Resque gem을 설치했습니다.클래스에 대해 Resque - 정의되지 않은 메서드 'perform'
Redis가 실행 중입니다. 작업자가 실행 중입니다 (rake resque : work QUEUE = simple). 웹 인터페이스를 사용하면 작업자가 실행 중이고 작업 대기 중임을 알 수 있습니다.
'rake get_updates'를 실행하면 작업이 대기 중이지만 실패합니다. 나는 def self.perform과 def로 그것을 시도했다.
clockwork.rake
task :get_updates => :environment do
Resque.enqueue(GetUpdates)
end
클래스 파일 (응용 프로그램/노동자/get_updates.rb)
class GetUpdates
@queue = :simple
def perform
puts "Running GetUpdates"
end
end
오류 메시지
undefined method `perform' for GetUpdates:Class
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/bundler/gems/resque-620d354454b8/lib/resque/job_performer.rb:79:in `perform_job'
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/bundler/gems/resque-620d354454b8/lib/resque/job_performer.rb:46:in `execute_job'
/Users/lukesmith/.rvm/gems/ruby-1.9.3-p327/bundler/gems/resque-620d354454b8/lib/resque/job_performer.rb:25:in `perform'
여기에서 방해해서 죄송합니다. OP가 자기가 시도한 것을 언급했다고 생각합니다. –
나는 오프 순간이 있었을 것입니다. 나는 redis를 재시작하고 resque를 self.perform으로 변경 한 후 다시 시작했다. 그 일은 내가 원하는 것을하고 있지 않지만 더 이상 오류가 없다. 건배. –
문제가 해결되었습니다. Tulentsev가 제안했듯이, 클래스 인스턴스 메소드 여야합니다. 다른 사용자에게 도움이 될 수 있도록 적절한 답변을 수락하십시오. –