ruby-on-rails – 使用参数查找失败的Sidekiq作业列表

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 使用参数查找失败的Sidekiq作业列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Sidekiq进行Rails APP的作业管理.我想知道你如何获得失败的工作(Ids,对象,错误消息等)的参数?在WebUI上,你得到的只是失败的工作nr.如果我理解正确,默认是将给定作业失败的所有时间加起来.我已经部署了我的应用程序,它正在几个工作人员上运行.很难找到每一个工人并试图找出答案,特别是当你有一个很久以前的sidekiq.log时.

我在这里和网上搜索答案.在下面的链接中描述了最接近的一个.

How to find failed jobs list in sidekiq?

这样可以找出一段时间内我有多少失败的工作.但是,我仍然不知道如何知道什么工作失败以及为什么失败.

基本上,我想以某种方式收集job_ids并定期检查哪些失败或者是否有更简单的方法,只需查询Sidekiq / Redis并查看失败作业的参数和错误是什么.

我也访问了这个链接Get error message out of Sidekiq job

这是我正在使用的示例作业

class ClassificationJob < ActiveJob::Base
 queue_as :default

 def perform(entity)
  entity.preprocess!
  entity.classify!
 end
end

我试着修改这个

class ClassificationJob < ActiveJob::Base
 queue_as :default

 def perform(entity)
  entity.preprocess!
  entity.classify!
  store entity_id: entity.id.to_s

  entity_id = retrieve :entity_id
 end
end

但它吐出以下错误

ArgumentError: You cannot include Sidekiq::Worker in an ActiveJob: ClassificationJob

谢谢,

雅尼克

解决方法

您正在寻找重试. “重试”是Sidekiq对于失败的工作的期限,并将在未来的某个时间重试.

Web UI使用API​​ Wiki页面上记录的Sidekiq API列出Retries选项卡上的重试:

https://github.com/mperham/sidekiq/wiki/API#retries

retries = Sidekiq::RetrySet.new
retries.each do |job|
  p [job.klass,job.args,job.jid]
end

猜你在找的Ruby相关文章