Resque等待工作永远

时间:2013-01-19 11:49:06

标签: ruby redis resque

重要提示:这是我第一次使用Resque和Redis。

我创建了这个任务:

class SimpleTask
  @queue=:simple

  def self.perform(msg)
    puts ":("
  end

end

我使用rails console安排了其中的100个:

irb(main):015:0> (0..100).each {|n| Resque.enqueue(SimpleTask,'come on!') }
=> 0..100
irb(main):016:0> Resque.info
=> {:pending=>101, :processed=>0, :queues=>1, :workers=>0, :working=>0, :failed=>0, :servers=>["redis://127.0.0.1:6379/0"], :environment=>"development"}
irb(main):017:0> Resque.peek('simple')
=> {"class"=>"SimpleTask", "args"=>["come on!"]}

当我使用此命令启动worker时:

rake environment resque:work

它属于无限循环:

*** Starting worker home-pc:7972:'simple'
*** Registered signals
*** Checking 'simple'
*** Sleeping for 5.0 seconds
*** resque-1.23.0: Waiting for 'simple'
*** Checking 'simple'
*** Sleeping for 5.0 seconds
*** resque-1.23.0: Waiting for 'simple'
*** Checking 'simple'
*** Sleeping for 5.0 seconds
*** resque-1.23.0: Waiting for 'simple'
*** Checking 'simple'
*** Sleeping for 5.0 seconds
*** resque-1.23.0: Waiting for 'simple'
*** Checking 'simple'
*** Sleeping for 5.0 seconds
*** resque-1.23.0: Waiting for 'simple'
*** Checking 'simple'
*** Sleeping for 5.0 seconds
*** resque-1.23.0: Waiting for 'simple'

Web界面显示有一名工作人员“正在等待工作......”。它还显示“简单”队列中有101个待处理作业。

我的设置有什么问题?

另外,我在Windows上使用Redis端口运行所有这些。 Redis似乎运行良好,至少Resque拥有它在Redis中存储的所有信息。

0 个答案:

没有答案