Ruby on rails 如何从重新出现在仪表板中获得sidekiq重试作业?

Ruby on rails 如何从重新出现在仪表板中获得sidekiq重试作业?,ruby-on-rails,sidekiq,sidekiq-monitor,Ruby On Rails,Sidekiq,Sidekiq Monitor,似乎我有一份工作失败了,但当它失败时,它仍然会继续,然后创建另一份和它一样的工作。请注意,在我的屏幕截图中,顶部项目和底部项目是相同的,参数为“836898”。这是我需要更改的某种配置吗 我指的是出现的重复条目,不一定会禁用重试 尼科姆的答案是正确的。但是,它将禁用所有sidekiq工作人员的重试。根据每种情况,我建议在每个类中禁用它,如: class NonRetryableWorker include Sidekiq::Worker sidekiq_options retry: fa

似乎我有一份工作失败了,但当它失败时,它仍然会继续,然后创建另一份和它一样的工作。请注意,在我的屏幕截图中,顶部项目和底部项目是相同的,参数为“836898”。这是我需要更改的某种配置吗

我指的是出现的重复条目,不一定会禁用重试


尼科姆的答案是正确的。但是,它将禁用所有sidekiq工作人员的重试。根据每种情况,我建议在每个类中禁用它,如:

class NonRetryableWorker
  include Sidekiq::Worker
  sidekiq_options retry: false

  def perform
  end
end
或者,只需限制重试次数,如:

class LessRetryableWorker
  include Sidekiq::Worker
  sidekiq_options retry: 5

  def perform
  end
end

您可以查看更多信息

我认为您应该首先包括
gem'sidekiq unique jobs'

那么你的工人应该是这样的

class CleanupWorker
  include Sidekiq::Worker
  sidekiq_options queue: :cleanup, unique: :until_executed, retry: 4, failures: :exhausted, backtrace: true

  sidekiq_retry_in do |count|
    10 * (count + 1)
  end

  def perform(args)
  end
end
unique::until_executed
这意味着作业必须是唯一的,只要它仍在队列中或正在执行。
重试:4
unique::until_executed
之间的组合将起作用。因为据我所知,当作业崩溃时,如果重试不为false,则作业将返回队列


下面是此唯一作业的gem repo的示例。重试中有两个条目,因为它们是两个不同的作业。您可以创建“相同”的作业(具有相同的类和参数),这些作业的内部作业ID不同。

我不想禁用重试,我想知道为什么重试表中有重复的条目?嗯。。。但如果失败,它将重试同一个作业并触发一个新作业。我们不是在谈论同一件事吗?对不起,如果我理解的话