0

重要な注意: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インターフェースは、「仕事を待っている...」というワーカーが1人いることを示しています。また、「simple」キューで保留中の101個のジョブも表示されます。

私の設定の何が問題になっていますか?

また、Redisポートを使用して、これらすべてをWindowsで実行しています。Redisは正常に機能しているようです。少なくとも、ResqueにはRedisに保存されているすべての情報があります。

4

0 に答える 0