O Trabalhador de Resco distribui “NOMETHODERROR: Método indefinido 'Perform'
-
26-09-2019 - |
Pergunta
Não tenho idéia do que fiz aqui, mas tentei obter um controlador em trilhos para fila um emprego na Resque, que então um trabalhador se conecta e faz o levantamento pesado (ou seja, comparações, entradas de banco de dados).
No entanto, as tarefas nem estão sendo executadas, pois não há instruções claras para definir o resque.
Copiar e colar abaixo:
Também disponível no formato GIST!
Esta é a linha de exceção de Hoptoad:
NoMethodError: undefined method 'perform' for Violateq:Module
Este é o conteúdo do arquivo "trabalhador":
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
Este é o conteúdo do arquivo "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
Muito obrigado pelo seu tempo e, se desejar mais informações, não hesite em entrar em contato comigo,
Luke Carpenter
Solução
Fixo.
Mudado def perform
para def self.perform
Então funcionou
Obrigado,
Luke Carpenter
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow