是否可以将参数传递给(resque-status)Resque :: JobWithStatus?

udo*_*udo 3 ruby backgroundworker resque

我对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
Run Code Online (Sandbox Code Playgroud)

并创建一个后台工作者

WordAnalyzer.create(word)
Run Code Online (Sandbox Code Playgroud)

没有resque-status,它可以完美地工作(调用enqueue而不是创建worker).随着resque-status,我得到了一个

错误的参数数量(2为1)/.../resque_test/lib/word_analyzer.rb:6:在`perform'/.../.rvm/gems/ruby-1.9.2-p136/gems/resque- 1.16.1/lib/resque/job.rb:127:在`perform'中

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

提前致谢.

Sad*_*tam 8

你应该做

WordAnalyzer.create(:word => word)
Run Code Online (Sandbox Code Playgroud)

并且通过执行方法访问该单词

  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
Run Code Online (Sandbox Code Playgroud)