travailleur resque donne à « NoMethodError: méthode non définie perform` »
-
26-09-2019 - |
Question
Je ne sais pas ce que je l'ai fait ici, mais je l'ai essayé d'obtenir un contrôleur Rails pour la file d'attente d'un emploi sur Resque, qui puis un Connects des travailleurs à et fait le levage de charges lourdes (comparaisons IE, les entrées de la base de données). < br> Cependant, les tâches ne sont même pas en cours d'exécution, car il n'y a pas d'instructions claires pour la mise en place Resque.
Copier et coller ci-dessous de:
Aussi disponible en format Gist!
Ceci est la ligne d'exception de hoptoad:
NoMethodError: undefined method 'perform' for Violateq:Module
Ceci est le contenu du fichier « travailleur »:
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
Ceci est le contenu du fichier "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
Merci beaucoup pour votre temps, et si vous souhaitez plus d'informations, s'il vous plaît ne hésitez pas à me contacter,
Luke Carpenter
La solution
fixe.
Changement def perform
à def self.perform
Ensuite, il a travaillé
Merci,
Luke Carpenter