Sha256: d839b97d6fc77e573a4200cbce2c39ef9e640d9e38fbcc42d7a5e68369596250

Contents?: true

Size: 1.41 KB

Versions: 4

Compression:

Stored size: 1.41 KB

Contents

# frozen_string_literal: true

begin
  require 'sidekiq/web'
rescue LoadError # rubocop:disable Lint/HandleExceptions
  # client-only usage
end

require_relative 'web/helpers'

module SidekiqUniqueJobs
  # Utility module to help manage unique keys in redis.
  # Useful for deleting keys that for whatever reason wasn't deleted
  #
  # @author Mikael Henriksson <mikael@zoolutions.se>
  module Web
    def self.registered(app) # rubocop:disable Metrics/MethodLength
      app.helpers do
        include Web::Helpers
      end

      app.get '/unique_digests' do
        @total_size     = Digests.count
        @filter         = params[:filter] || '*'
        @filter         = '*' if @filter == ''
        @count          = (params[:count] || 100).to_i
        @unique_digests = Digests.all(pattern: @filter, count: @count)

        erb(unique_template(:unique_digests))
      end

      app.get '/unique_digests/:digest' do
        @digest = params[:digest]
        @unique_keys = Util.keys("#{@digest}*", 1000)

        erb(unique_template(:unique_digest))
      end

      app.get '/unique_digests/:digest/delete' do
        Digests.del(digest: params[:digest])
        redirect_to :unique_digests
      end
    end
  end
end

if defined?(Sidekiq::Web)
  Sidekiq::Web.register SidekiqUniqueJobs::Web
  Sidekiq::Web.tabs['Unique Digests'] = 'unique_digests'
  # Sidekiq::Web.settings.locales << File.join(File.dirname(__FILE__), 'locales')
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sidekiq-unique-jobs-6.0.1 lib/sidekiq_unique_jobs/web.rb
sidekiq-unique-jobs-6.0.0 lib/sidekiq_unique_jobs/web.rb
sidekiq-unique-jobs-6.0.0.rc8 lib/sidekiq_unique_jobs/web.rb
sidekiq-unique-jobs-6.0.0.rc7 lib/sidekiq_unique_jobs/web.rb