Rails 5 - Resque 未处理排队的作业

Rails 5 - Resque not processing enqueued job

我正在尝试使用 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"。 None 的其他错误记录在 perform.

我做错了什么?

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