Module: AtomicSidekiq::Web

Defined in:
lib/atomic_sidekiq/web.rb

Constant Summary collapse

VIEW_PATH =
File.expand_path("../../web/views", __dir__)

Class Method Summary collapse

Class Method Details

.register_delete_inflight(app) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/atomic_sidekiq/web.rb', line 26

def self.register_delete_inflight(app)
  app.post "/in-flight/:jid/delete" do
    AtomicSidekiq::InFlightQueue.new.delete_job(route_params[:jid])

    redirect "#{root_path}in-flight"
  end
end

.register_inflight(app) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/atomic_sidekiq/web.rb', line 11

def self.register_inflight(app)
  app.get "/in-flight" do
    @jobs = AtomicSidekiq::InFlightQueue.new.list
    @total_size = @jobs.count
    @count = (params[:count] || 25).to_i
    @current_page = (params[:page] || 1).to_i

    start_idx = (@current_page - 1) * @count
    end_idx = (@current_page * @count) - 1
    @jobs = @jobs[start_idx..end_idx] || []

    erb File.read(File.join(VIEW_PATH, "in_flight.erb"))
  end
end

.register_recovered(app) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/atomic_sidekiq/web.rb', line 34

def self.register_recovered(app)
  app.get "/recovered" do
    @queues = AtomicSidekiq::RecoveredStats.new.stats_by_queue
    @jobs = AtomicSidekiq::RecoveredStats.new.stats_by_job

    erb File.read(File.join(VIEW_PATH, "recovered.erb"))
  end
end

.registered(app) ⇒ Object



5
6
7
8
9
# File 'lib/atomic_sidekiq/web.rb', line 5

def self.registered(app)
  register_inflight(app)
  register_delete_inflight(app)
  register_recovered(app)
end