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.

Foi útil?

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
scroll top