我有一个延迟类,它在外部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的情况下重试该方法?
答案 0 :(得分:0)
好吧,在重新启动我的sidekiq进程后它运行起来,显然只是在我的rails控制台上执行reload!
是不够的。