3

我对resque很陌生,但它看起来非常适合我的需求。

实际上,我正在尝试设置一个简单的测试应用程序,例如:

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-status,它可以完美地工作(调用 enqueue 而不是创建 worker)。有了resque-status,我得到了一个

参数数量错误(2 为 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:在“执行”中

我搜索了文档和代码,但没有找到将参数传递给 resque-status 工作的正确方法。是否可以?

提前致谢。

4

1 回答 1

8

你应该做

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
于 2011-06-07T04:49:27.643 回答