从表演中重新安排一个sidekiq工作

时间:2015-08-12 10:56:01

标签: ruby-on-rails ruby sidekiq

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

def perform

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

end

这是一个简单的例子,但在我的用例中有很多计算和网络调用,所以我无法在外部进行

2 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:0)

CAUSION!记得在 self.class.perform_in()

之后返回

我在制作环境中遇到了严重的问题。