2016-09-12 46 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)工作得很好。