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)
工作得很好。
我正在尝试使用 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)
工作得很好。