加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 04:20:14 所属栏目:百科 来源:网络整理
导读:我正在使用Sidekiq进行Rails APP的作业管理.我想知道你如何获得失败的工作(Ids,对象,错误消息等)的参数?在WebUI上,你得到的只是失败的工作nr.如果我理解正确,默认是将给定作业失败的所有时间加起来.我已经部署了我的应用程序,它正在几个工作人员上运行.很难
我正在使用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读