在失败的情况下重复 Sidekiq,但从失败发生的点开始
Repeat Sidekiq in case of failure but from a point where the failure occured
我有一个可能会失败的 Sidekiq 作业。该作业包含一些向 REST API 发出请求的操作。如果失败,Sidekiq 将重复该工作,这是默认情况。但是,我不希望它从头开始重复作业,它应该从导致失败的操作开始重复,直到最后一次操作成功为止。我怎样才能做到这一点?
开箱即用这显然是不可能的。 Sidekiq 不会解析您的代码,他几乎不知道哪里 发生了错误。一个人应该将工作分解为一系列小工作,一个 运行 其他。
class Job1
def perform
...
Job2.perform_async
end
end
...
这样,比如说,Job3 失败了,它将被重新安排,一切都会完全按照您的意愿进行。
我有一个可能会失败的 Sidekiq 作业。该作业包含一些向 REST API 发出请求的操作。如果失败,Sidekiq 将重复该工作,这是默认情况。但是,我不希望它从头开始重复作业,它应该从导致失败的操作开始重复,直到最后一次操作成功为止。我怎样才能做到这一点?
开箱即用这显然是不可能的。 Sidekiq 不会解析您的代码,他几乎不知道哪里 发生了错误。一个人应该将工作分解为一系列小工作,一个 运行 其他。
class Job1
def perform
...
Job2.perform_async
end
end
...
这样,比如说,Job3 失败了,它将被重新安排,一切都会完全按照您的意愿进行。