如何设置动态resque队列

How to set dynamic resque queue

我希望我可以决定去哪个队列上班。 这是因为如果作业由服务器 (cronjob) 安排,则它必须 运行 在慢队列中,如果它是由用户 运行 它将进入快速队列。 我如何在 Resque 中 运行 这个?

控制器

MyJob.perform_later(id, :fast)

耙任务

MyJob.perform_later(id, :slow)

工作

class MyJob < ApplicationJob
  queue_as :default #<-- This has to be dynamic

  def perform(item_id, queue_name)
     ....
  end

我看到你正在使用ActiveJob,你可以使用set方法设置队列:

控制器

MyJob.set(queue: :fast).perform_later(id)

耙任务

MyJob.set(queue: :slow).perform_later(id)

set 方法允许您设置更多的东西,而不仅仅是队列,您还可以设置例如优先级或何时应该执行作业。请参阅文档 https://api.rubyonrails.org/v5.2.3/classes/ActiveJob/Core/ClassMethods.html#method-i-set

注意:我想,您已经有慢速和快速 Resque 队列 运行 并且只想使用它们