É possível passar argumentos para um Resque::JobWithStatus (resque-status)?
-
15-11-2019 - |
Pergunta
Sou muito novo no resque, mas parece muito bom para minhas necessidades.
Na verdade, estou tentando configurar um aplicativo de teste simples como:
require 'resque'
require 'resque/job_with_status'
class WordAnalyzer < Resque::JobWithStatus
@queue = "word_analysis"
def self.perform(word)
puts "About to do heavy duty analysis on #{word}"
sleep 3 # fake analysis here
# this would be something impressive
puts "Finished with analysis on #{word}"
end
end
E criando um trabalhador em segundo plano por
WordAnalyzer.create(word)
Sem resque-status, funciona perfeitamente (chamando enqueue em vez de criar o trabalhador).Com resque-status, recebo um
Número errado de argumentos (2 para 1) /.../resque_test/lib/word_analyzer.rb:6:in `perform '/.../.rvm/gems/ruby-1.9.2-p136/gems/resque- 1.16.1/lib/resque/job.rb: 127: em `performa '
Pesquisei documentos e códigos, mas não encontrei a maneira correta de entregar argumentos para um trabalho com status de resque.É possível?
Desde já, obrigado.
Solução
Você deveria fazer
WordAnalyzer.create(:word => word)
E acesse essa palavra no método perform por
def perform
word = options['word']
puts "About to do heavy duty analysis on #{word}"
sleep 3 # fake analysis here
# this would be something impressive
puts "Finished with analysis on #{word}"
end
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow