2016-06-28 65 views
0

我有一个可能会失败的Sidekiq作业。该作业包含一些向REST API发出请求的操作。在发生故障的情况下,Sidekiq将重复该作业,并且这是默认情况。但是,我不希望它从一开始就重复这项工作,它应该从导致失败并且直到最后一次操作已经成功的那个操作重复。我怎样才能做到这一点?重复Sidekiq在发生故障的情况下,但从发生故障的点起

回答

3

开箱即用这显然是不可能的。 Sidekiq不分析你的代码,他几乎不知道,其中发生错误。一个人应该把工作分解成一小撮工作,另一个工作。

class Job1 
    def perform 
    ... 
    Job2.perform_async 
    end 
end 

... 

就是说,如果Job3失败,它将被重新安排并且所有事情都会按照您的意愿行事。

+0

我应该为每个操作有一个工作班级工人吗?这是实现我的目标的惯用方式吗? –

+0

尽管这是实现目标的唯一方法,但我相信你不应该在乎它的习惯用法:) – mudasobwa