Можно ли передать аргументы в (resque-status) Resque :: JobWithStatus? - PullRequest
3 голосов
/ 18 мая 2011

Я довольно новичок, чтобы восстановить, но это выглядит действительно хорошо для моих нужд.

На самом деле, я пытаюсь настроить простое тестовое приложение, такое как:

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

ИСоздание фонового работника с помощью

WordAnalyzer.create(word)

Без resque-статуса это работает отлично (с вызовом enqueue вместо создания работника).С помощью resque-status я получаю

неверное количество аргументов (2 для 1) /.../resque_test/lib/word_analyzer.rb:6:in `execute '/.../.rvm / gems / ruby-1.9.2-p136 / gems / resque-1.16.1 / lib / resque / job.rb: 127: в `execute '

Я искал оба документаи код, но не нашел правильный способ передачи аргументов заданию со статусом восстановления.Возможно ли это?

Заранее спасибо.

1 Ответ

8 голосов
/ 07 июня 2011

Вы должны сделать

WordAnalyzer.create(:word => word)

и получить доступ к этому слову в методе выполнения с помощью

  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
...