Module: SidekiqStatus::Web
- Defined in:
- lib/sidekiq_status/web.rb
Overview
Hook into Sidekiq::Web Sinatra app which adds a new "/statuses" page
Constant Summary collapse
- VIEW_PATH =
Location of SidekiqStatus::Web view templates
File.('../../../web/views', __FILE__)
Class Method Summary collapse
Class Method Details
.registered(app) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/sidekiq_status/web.rb', line 8 def self.registered(app) app.helpers do def sidekiq_status_template(name) path = File.join(VIEW_PATH, name.to_s) + ".erb" File.open(path).read end def redirect_to(subpath) if respond_to?(:to) # Sinatra-based web UI redirect to(subpath) else # Non-Sinatra based web UI (Sidekiq 4.2+) redirect "#{root_path}#{subpath}" end end end app.get '/statuses' do @count = (params[:count] || 25).to_i @current_page = (params[:page] || 1).to_i @current_page = 1 unless @current_page > 0 @total_size = SidekiqStatus::Container.size pageidx = @current_page - 1 @statuses = SidekiqStatus::Container.statuses(pageidx * @count, (pageidx + 1) * @count) erb(sidekiq_status_template(:statuses)) end app.get '/statuses/:jid' do @status = SidekiqStatus::Container.load(params[:jid]) erb(sidekiq_status_template(:status)) end app.get '/statuses/:jid/kill' do SidekiqStatus::Container.load(params[:jid]).request_kill redirect_to :statuses end app.get '/statuses/delete/all' do SidekiqStatus::Container.delete redirect_to :statuses end app.get '/statuses/delete/complete' do SidekiqStatus::Container.delete('complete') redirect_to :statuses end app.get '/statuses/delete/finished' do SidekiqStatus::Container.delete(SidekiqStatus::Container::FINISHED_STATUS_NAMES) redirect_to :statuses end end |