Resque Arbeiter gibt aus „NoMethodError: nicht definierte Methode` perform`“
-
26-09-2019 - |
Frage
Ich habe keine Ahnung, was ich hier getan habe, aber ich versucht haben, einen Controller in Rails zu bekommen, einen Job auf Resque in die Warteschlange, die dann ein Arbeiter Connects zu und macht das Heben schwerer Lasten (IE Vergleiche, Datenbankeinträge). < br> Allerdings sind die Aufgaben nicht einmal ausgeführt wird, da es keine klaren Anweisungen für die Einstellung Resque auf.
Kopieren Sie den unten:
Auch in Gist-Format zur Verfügung!
Dies ist die Ausnahme Linie vom Hoptoad:
NoMethodError: undefined method 'perform' for Violateq:Module
Dies ist der Inhalt des "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
Dies ist der Inhalt des "web_controller" file:
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 zu kontaktieren,
Luke Carpenter
Lösung
Fixed.
Changed def perform
zu def self.perform
Dann arbeitete er
Danke,
Luke Carpenter