operaio Resque dà fuori “NoMethodError: metodo indefiniti` perform`”
-
26-09-2019 - |
Domanda
Non ho idea di quello che ho fatto qui, ma ho cercato di ottenere un controller in Rails fare la coda un lavoro sul Resque, che poi un lavoratore si connette e fa il sollevamento di carichi pesanti (comparazioni IE, voci di database). < br> Tuttavia, i compiti non sono nemmeno in esecuzione, dal momento che non ci sono chiare istruzioni per l'impostazione Resque up.
Copia e incolla di seguito:
Disponibile anche in formato Gist!
Questa è la linea di un'eccezione da Hoptoad:
NoMethodError: undefined method 'perform' for Violateq:Module
Questo è il contenuto del file "lavoratore":
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
Questo è il contenuto del file "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
La ringrazio molto per il vostro tempo, e se volete altre informazioni, non esitate a contattarmi,
Luke Carpenter
Soluzione
fissi.
Cambiato def perform
a def self.perform
Poi ha funzionato
Grazie,
Luke Carpenter