spa*_*kle 4 ruby-on-rails resque ruby-on-rails-5
我希望我可以决定去哪个队列上班。这是因为如果作业是由服务器(cronjob)调度的,它必须在慢队列中运行,如果由用户运行,它将进入快速队列。我如何在 Resque 中运行它?
控制器
MyJob.perform_later(id, :fast)
Run Code Online (Sandbox Code Playgroud)
耙任务
MyJob.perform_later(id, :slow)
Run Code Online (Sandbox Code Playgroud)
工作
class MyJob < ApplicationJob
queue_as :default #<-- This has to be dynamic
def perform(item_id, queue_name)
....
end
Run Code Online (Sandbox Code Playgroud)
我看到你在使用ActiveJob,你可以使用set方法设置队列:
控制器
MyJob.set(queue: :fast).perform_later(id)
Run Code Online (Sandbox Code Playgroud)
耙任务
MyJob.set(queue: :slow).perform_later(id)
Run Code Online (Sandbox Code Playgroud)
set方法允许您设置比队列更多的东西,您还可以设置例如优先级或何时应该执行作业。请参阅文档https://api.rubyonrails.org/v5.2.3/classes/ActiveJob/Core/ClassMethods.html#method-i-set
注意:我想你已经有慢速和快速的 Resque 队列并且正在运行并且只想使用它们
| 归档时间: |
|
| 查看次数: |
421 次 |
| 最近记录: |