从第一工作人员呼叫第二工作人员时,如何获取第二工作人员的工作ID

时间:2019-05-04 09:16:15

标签: ruby-on-rails jobs sidekiq

我正在使用sidekiq处理后台作业。

class MainWorker
 def perform(from_date, to_date) 
   Rails.logger.info "In MainWorker, job id #{jid}"
   SampleWorker.new.perform(from_date, to_date)
 end
end

class SampleWorker
 def perform(from_date, to_date) 
   Rails.logger.info "In SampleWorker, job id #{jid}"
 end
end

我正在从MainWorker呼叫SampleWorker。我在打印时在MainWorker中获得Sidekiq作业ID。但是我在打印时在SampleWorker中看到Job id为nil。

如何通过MainWorker在SampleWorker中获得相同的工作ID,而不传递为参数?

有没有可用的会话选项?如果是,该怎么办?

1 个答案:

答案 0 :(得分:0)

您没有创建SampleWorker作业,因此未分配JID。要创建SampleWorker作业,必须调用perform_async。直接呼叫SampleWorker.new.perform会完全绕过Sidekiq。