引发错误时,Sidekiq Delayed Class不会失败

时间:2016-07-14 00:42:39

标签: ruby-on-rails-4 sidekiq

我有一个延迟类,它在外部Web服务上执行请求,如果请求失败,我想重试。

class MyModel

  def self.does_request(record_name)
    response = self.post(record_name)
    if response.status == 404
      raise StandardError
    end
  end

  def self.post(record_name)
    # HTTP request which returns the response
  end

end

我将该方法称为MyModel.delay.does_request('new_value')

不幸的是,Sidekiq没有处理我引发的错误,它只是将作业标记为在WebUI上处理。我已经尝试在单独的Worker perform方法上引发错误并且工作正常,但是我正在避免专门为此创建一个worker,因为我在该类上有几个请求并为每个声音创建一个Worker太多了

如何在不使用Worker的情况下重试该方法?

1 个答案:

答案 0 :(得分:0)

好吧,在重新启动我的sidekiq进程后它运行起来,显然只是在我的rails控制台上执行reload!是不够的。