Sha256: df83f50341c0017d7a04a907edb77eb07d867d406104f74a75b0c3f5f4a11134
Contents?: true
Size: 794 Bytes
Versions: 2
Compression:
Stored size: 794 Bytes
Contents
module DjDashboard class Job def self.fetch(opts={}) jobs = Delayed::Job.select(:handler).group(:handler).map { |job| { handler: job[:handler].chomp, name: job[:handler].scan(/object:(\w+)\ /).flatten.first } } jobs.each do |job| job[:running] = Delayed::Job.where("handler like '%#{job[:name]}%'").where("locked_at is not null").count job[:failed] = Delayed::Job.where("handler like '%#{job[:name]}%'").where("failed_at is not null and attempts > 3").count job[:pending] = Delayed::Job.where("handler like '%#{job[:name]}%'").where(locked_at: nil, failed_at: nil).count job[:retrying] = Delayed::Job.where("handler like '%#{job[:name]}%'").where(locked_at: nil).where("failed_at is not null").count end jobs end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dj_dashboard-0.0.2 | app/models/dj_dashboard/job.rb |
dj_dashboard-0.0.1 | app/models/dj_dashboard/job.rb |