2010-10-25 8 views
6

Ich habe keine Ahnung, was ich hier getan habe, aber ich habe versucht, einen Controller in Rails einen Job auf Resque zu stellen, der dann ein Worker verbindet und macht das schwere Heben (IE-Vergleiche, Datenbankeinträge).
Die Aufgaben laufen jedoch nicht einmal, da es keine klaren Anweisungen zum Einstellen von Resque-Up gibt.Rescue Worker gibt "NoMethodError: undefined Methode` perform` "aus

Kopieren Sie den unten:
Also available in Gist format!

Dies ist die Ausnahme Linie vom Hoptoad:

NoMethodError: undefined method 'perform' for Violateq:Module 

Dies ist der Inhalt der "Arbeiter" file:

module Violateq 
    @queue = :violateq 

    def perform(nick, rulenumber) 
    # Working for the weekend!!! 
    puts "I got a nick of #{nick} and they broke #{rulenumber}" 
    @violation = Violation.new(nick, rulenumber) 
    puts "If you got this far, your OK" 
    log_in(:worker_log, {:action => "Violate d=perfom", :nick => nick, :rulenumber => rulenumber, :status => "success"}) 
    #rescue => ex 
    # notify_hoptoad(ex) 
    # log_in(:worker_log, {:action => "Violate d=perfom", :nick => nick, :rulenumber => rulenumber, :status => "failure"}) 
    end 

end 

Diese ist der Inhalt der Datei "web_controller":

class IncomingController < ApplicationController 
    require 'mail' 
    skip_before_filter :verify_authenticity_token 

    def create 
    message = Mail.new(params[:message]) 
    # Push the message into the queue 
    Resque.enqueue(Violateq, message.from.to_s, message.subject.to_s) 
    log_in(:endpoint_log, {:action => "IncomingController d=create", :subject => message.subject, :message => message.body.decoded}) 
    render :text => 'success', :status => 200 # a status of 404 would reject the mail 
    rescue => ex 
     notify_hoptoad(ex) 
     render :text => 'failure', :status => 500 
    end 
end 

Vielen Dank für Ihre Zeit, und wenn Sie mehr Informationen wünschen, zögern Sie bitte nicht mich, Feste
Luke Carpenter

Antwort

16

zu kontaktieren.
Changed def perform-def self.perform
Dann arbeitete er

Danke, Kumpel
Luke Carpenter

+0

Dank. Das spart mir große Zeit. Ich habe das gelesen http://blog.redistogo.com/2010/07/26/resque-with-redis-to-go/ und ihr Code ist falsch (vielleicht nur von einer älteren Version?) Und damit funktioniert es. – rafamvc

+0

Das hat mich auch gerettet, und ich habe tatsächlich den gleichen Post gelesen, mit dem der Typ oben verlinkt ist. –

Verwandte Themen