module Sidekiq::Errors::WebExtension
Public Class Methods
registered(app)
click to toggle source
# File lib/sidekiq/errors/web_extension.rb, line 6 def self.registered(app) view_path = File.join(File.expand_path("..", __FILE__), "views") app.post "/errors/:error_class/:error_message/retry" do @error_class = params[:error_class] @error_message = params[:error_message] Sidekiq::RetrySet.new.select do |retri| retri.item['error_class'] == @error_class && Digest::MD5.hexdigest(retri.item['error_message']) == @error_message end.map(&:retry).length redirect "#{root_path}errors/#{@error_class}/#{@error_message}" end app.post "/errors/:error_class/:error_message/delete" do @error_class = params[:error_class] @error_message = params[:error_message] Sidekiq::RetrySet.new.select do |retri| retri.item['error_class'] == @error_class && Digest::MD5.hexdigest(retri.item['error_message']) == @error_message end.map(&:delete).length redirect "#{root_path}errors/#{@error_class}/#{@error_message}" end app.post "/errors/:error_class/retry" do @error_class = params[:error_class] Sidekiq::RetrySet.new.select do |retri| retri.item['error_class'] == @error_class end.map(&:retry).length redirect "#{root_path}errors/#{@error_class}" end app.post "/errors/:error_class/delete" do @error_class = params[:error_class] Sidekiq::RetrySet.new.select do |retri| retri.item['error_class'] == @error_class end.map(&:delete).length redirect "#{root_path}errors/#{@error_class}" end app.get "/errors/:error_class/:error_message" do @error_class = params[:error_class] @error_message = params[:error_message] @retries = Sidekiq.redis {|c| c.zrange("retry", 0, Sidekiq.errors_max_count, :with_scores => true) } @retries = @retries .map {|msg, score| Sidekiq::SortedEntry.new(nil, score, msg) } .select{|job| job['error_class'] == @error_class } .select{|job| Digest::MD5.hexdigest(job['error_message']) == @error_message } @total_size = @count = @retries.length render(:erb, File.read(File.join(view_path, "errors_class_message.erb"))) end app.get "/errors/:error_class" do @error_class = params[:error_class] @error_messages = Hash[ Hash[ *Sidekiq.redis {|c| c.zrange("retry", 0, Sidekiq.errors_max_count) } .collect{|job| Sidekiq.load_json(job)} .select{|job| job['error_class'] == @error_class } .collect{|job| job['error_message'] } .group_by{ |v| v }.flat_map{ |k, v| [k, v.size] } ] .sort_by{|k,v| v} .reverse ] render(:erb, File.read(File.join(view_path, "errors_class.erb"))) end app.get "/errors" do @errors = Hash[ Hash[ *Sidekiq.redis {|c| c.zrange("retry", 0, Sidekiq.errors_max_count) } .collect{|job| Sidekiq.load_json(job)['error_class']} .group_by{ |v| v }.flat_map{ |k, v| [k, v.size] } ] .sort_by{|k,v| v} .reverse ] render(:erb, File.read(File.join(view_path, "errors.erb"))) end end