Rails 5 - Resque不处理排队作业

时间:2016-09-12 04:21:40

标签: ruby-on-rails ruby redis jobs resque

我正在尝试使用Resque 1.26.0(以及Redis-rb 3.3.1)排除一项简单的工作。该作业似乎没有处理perform函数,因为resque-web正在处理每个作业并显示0个失败。这些工作也在​​即时处理。

作业通过

从控制器操作中排队
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内没有记录任何其他错误。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

解决了这个问题。需要使用ActiveJob调用该作业,而不是使用Resque.enqueueTestJob.perform_later(url)工作得很好。