2016-09-12 66 views
1

我正在嘗試使用Resque 1.26.0(和Redis-rb 3.3.1)排隊一個簡單的作業。該作業似乎沒有處理perform功能,因爲resque-web正在處理每個作業並顯示0個故障。這些工作也正在被即時處理。Rails 5 - Resque未處理入隊作業

的作業從控制器操作排隊,以

Resque.enqueue(TestJob, url) 

作業本身看起來像

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任務還設置:

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

redis-server是運行。

工人以rake resque:work QUEUE=*開始。使用詳細日誌記錄不會顯示任何有用的信息。

日誌文件只顯示第一個致命錯誤字符串「thing」。沒有其他錯誤記錄在perform之內。

我在這裏做錯了什麼?

+0

在resque網站:你有多少員工?每次運行'Resque.enqueue(TestJob,url)'時,處理編號是否會增加? – XavM

+0

有一名工人在跑步。每次調用Resque.enqueue時,處理編號都會增加,但會立即進行處理。 –

+0

您是否嘗試在執行方法的第一行中包含byebug? – XavM

回答

0

解決了這個問題。需要使用ActiveJob調用該作業,而不是使用Resque.enqueueTestJob.perform_later(url)工作得很好。