1
0
Fork 0
mirror of https://github.com/mperham/sidekiq.git synced 2022-11-09 13:52:34 -05:00

Implement simple home page and queue page

This commit is contained in:
Mike Perham 2012-03-05 20:53:14 -08:00
parent 20e51f1276
commit 0bfe2bd416
6 changed files with 79 additions and 18 deletions

8
config.ru Normal file
View file

@ -0,0 +1,8 @@
require 'sidekiq'
Sidekiq.configure_client do |config|
config.redis = { :size => 1 }
end
require 'sidekiq/web'
run Sidekiq::Web

View file

@ -32,11 +32,33 @@ module Sidekiq
dir = File.expand_path(File.dirname(__FILE__) + "/../../web") dir = File.expand_path(File.dirname(__FILE__) + "/../../web")
set :views, "#{dir}/views" set :views, "#{dir}/views"
set :root, "#{dir}/public" set :root, "#{dir}/public"
set :slim, :pretty => true
use SprocketsMiddleware, :root => dir use SprocketsMiddleware, :root => dir
helpers do
def workers
Sidekiq.redis.smembers('workers')
end
def queues
Sidekiq.redis.smembers('queues')
end
def location
Sidekiq.redis.client.location
end
def root_path
"#{env['SCRIPT_NAME']}/"
end
end
get "/" do get "/" do
slim :index slim :index
end end
get "/queues/:name" do
@name = params[:name]
@messages = Sidekiq.redis.lrange("queue:#{params[:name]}", 0, 10).map { |str| MultiJson.decode(str) }
slim :queue
end
end end
end end

View file

@ -1,6 +1,6 @@
Sidekiq.configure_client do |config| Sidekiq.configure_client do |config|
config.redis = { :namespace => 'resque', :size => 2 } config.redis = { :size => 2 }
end end
Sidekiq.configure_server do |config| Sidekiq.configure_server do |config|
config.redis = { :namespace => 'resque', :size => 25 } config.redis = { :size => 25 }
end end

View file

@ -1,5 +1,27 @@
header header
h1 Index h1 Overview
div class="row"
div class="span12" .tabbable
| Index goes here ul.nav.nav-tabs
li.active
a href="#queues" data-toggle="tab" Queues
li
a href="#workers" data-toggle="tab" Workers
.tab-content
#queues.tab-pane.active
table class="table table-striped table-bordered"
tr
th Queue
- queues.each do |queue|
tr
td
a href="queues/#{queue}" #{queue}
#workers.tab-pane
table class="table table-striped table-bordered"
tr
th Workers
- workers.each do |worker|
tr
td
a href="workers/#{worker}" #{worker}

View file

@ -1,23 +1,21 @@
doctype html doctype html
html html
head head
link href='assets/application.css' media='screen' rel='stylesheet' type='text/css' link href='#{{root_path}}assets/application.css' media='screen' rel='stylesheet' type='text/css'
title Sidekiq title Sidekiq
body body
div class="navbar navbar-fixed-top" .navbar.navbar-fixed-top
div class="navbar-inner" .navbar-inner
div class="container" .container
a class='brand' href='' a class='brand' href='#{{root_path}}'
| Sidekiq | Sidekiq
ul class='nav' ul class='nav'
li li
a href='' Home a href='#{{root_path}}' Home
li.pull-right
div class="container" a Redis: #{location}
.container
== yield == yield
footer class="footer" script type="text/javascript" src="#{{root_path}}assets/application.js"
p © #{Time.now.year} Mike Perham
script type="text/javascript" src="assets/application.js"

11
web/views/queue.slim Normal file
View file

@ -0,0 +1,11 @@
header
h1 Latest messages in #{@name}
table class="table table-striped table-bordered"
tr
th Class
th Arguments
- @messages.each do |msg|
tr
td= msg['class']
td= msg['args'].inspect[0..100]