2016-09-12 15 views
1

Resque 1.26.0(およびRedis-rb 3.3.1)を使用して簡単なジョブをエンキューしようとしています。 resque-webがそれぞれのジョブを処理しているため、0の失敗を示しているため、ジョブはperformの機能を処理していないようです。ジョブも即座に処理されます。Rails 5 - 待ち行列に入れられていないジョブを再処理しない

require 'resque/tasks' 
task "resque:setup" => :environment 

redis-serverは次のとおりです。

ジョブが

class TestJob < ApplicationJob 
    @queue = :tags_queue 
    Logger.new("log/resque_worker_QUEUE.log").fatal("thing") 

    def self.perform(url) 
    Logger.new("log/resque_worker_QUEUE.log").fatal("other thing") 
    logger.fatal("more errors please") 

    myDivideByZeroVar= 1/0 
    raise "error" 
    Logger.new("log/resque_worker_QUEUE.log").fatal("other thing") 
    logger.fatal("more errors please") 
    end 
end 

rakeタスクも設定されているような仕事自体が見え

Resque.enqueue(TestJob, url) 

とコントローラのアクションからエンキューされていますランニング。

ワーカーはrake resque:work QUEUE=*で始まります。冗長なロギングを使用しても何も役立ちません。

ログファイルには、最初の致命的なエラー文字列 "thing"しか表示されません。 performの中に他のエラーは記録されていません。

私はここで間違っていますか?

+0

resque web:あなたは稼働している労働者はどれくらいありますか? 'Resque.enqueue(TestJob、url)'を実行するたびに処理数が増えますか? – XavM

+0

実行中のワーカーは1人です。 Resque.enqueueが呼び出されるたびに処理番号が増加しますが、即座に処理されます。 –

+0

performメソッドの最初の行にbyebugをインクルードしようとしましたか? – XavM

答えて

0

これを解決しました。 Resque.enqueueの代わりにActiveJobを使用してジョブを呼び出す必要がありました。 TestJob.perform_later(url)はうまく機能しました。

関連する問題