有没有办法检查 Sidekiq 工作器中 perform 中的条件,并在不同的时间重新安排作业(并停止执行作业)?

def perform

 if is_it_summer_yet?
   Bear.wake_em_up
 else
   # reschedule to perform in a few hours
 end

end

这是一个简单的例子,但在我的用例中,有很多针对该条件的计算和网络调用,所以我不能在外部进行

最佳答案

def perform
  if is_it_summer_yet?
    Bear.wake_em_up
  else
    self.class.perform_in(1.hour)
  end
end

关于ruby-on-rails - 从 perform 中重新安排 sidekiq 作业,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31963202/

10-13 04:46