我正在尝试使用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
内没有记录任何其他错误。
我在这里做错了什么?
答案 0 :(得分:0)
解决了这个问题。需要使用ActiveJob调用该作业,而不是使用Resque.enqueue
。 TestJob.perform_later(url)
工作得很好。