gpt4 book ai didi

ruby-on-rails - 检查触发特定作业 ID 的工作人员名称

转载 作者:可可西里 更新时间:2023-11-01 11:46:02 25 4
gpt4 key购买 nike

我正在从事 Ruby on Rails 项目。我想知道是否可以使用作业 ID 获取触发特定作业的工作人员名称,以便在完成后显示适当的消息。这可能吗?还是我应该只在模型中保存工作人员姓名?

#I have a method that creates the job

def generate

my_model.job_id = HardWorker.perform_async()
my_model.save!
end

def check_status
if job_id && Sidekiq::Status::complete?(my_model.job_id)
# if HardWorker
# "HardWorker is done!"
# elseif AnotherWorker
# "AnotherWorker is Done!"
# end
end
end

最佳答案

您可以使用以下代码通过作业 ID 获取 Worker 类:

queue = Sidekiq::Queue.new
job = queue.detect { |job| job.jid == job_id //<-- the job id you have from perfrom_async }

你的代码应该是这样的:

def check_status
queue = Sidekiq::Queue.new
job = queue.detect { |job| job.jid == my_model.job_id }

if job_id && Sidekiq::Status::complete?(my_model.job_id)
puts "#{job.klass} is done" <-- The worker that triggered the job
end
end

关于队列的更多信息 here

关于ruby-on-rails - 检查触发特定作业 ID 的工作人员名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56136832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com