重要提示:这是我第一次使用 Resque 和 Redis。
我创建了这个任务:
class SimpleTask
@queue=:simple
def self.perform(msg)
puts ":("
end
end
我使用 rails 控制台安排了 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!"]}
当我使用此命令启动工作人员时:
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 中的所有信息。