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

Add delete and retry now operations to web UI

This commit is contained in:
Mike Perham 2012-03-29 20:55:16 -07:00
parent 94d282469a
commit ad73a8ee3a
3 changed files with 41 additions and 7 deletions

View file

@ -4,5 +4,15 @@ Sidekiq.configure_client do |config|
config.redis = { :size => 1 }
end
#Sidekiq.redis {|conn| conn.flushdb }
#10.times do |idx|
#Sidekiq::Client.push('class' => 'HardWorker', 'args' => ['foo', 0.1, idx])
#end
#Sidekiq.redis { |conn| conn.zadd('retry', Time.now.utc.to_f + 3000, MultiJson.encode({
#'class' => 'HardWorker', 'args' => ['foo', 0.1, Time.now.to_f],
#'queue' => 'default', 'error_message' => 'No such method', 'error_class' => 'NoMethodError',
#'failed_at' => Time.now.utc, 'retry_count' => 0 })) }
require 'sidekiq/web'
run Sidekiq::Web

View file

@ -87,8 +87,8 @@ module Sidekiq
def retries_with_score(score)
Sidekiq.redis do |conn|
results = conn.zrangebyscore('retry', score, score, :withscores => true)
results.each_slice(2).map { |msg, score| [MultiJson.decode(msg), Float(score)] }
results = conn.zrangebyscore('retry', score, score)
results.map { |msg| MultiJson.decode(msg) }
end
end
@ -129,9 +129,29 @@ module Sidekiq
get "/retries/:score" do
halt 404 unless params[:score]
@score = params[:score]
@score = params[:score].to_f
slim :retry
end
post "/retries/:score" do
halt 404 unless params[:score]
score = params[:score].to_f
if params['retry']
Sidekiq.redis do |conn|
results = conn.zrangebyscore('retry', score, score)
conn.zremrangebyscore('retry', score, score)
results.map do |message|
msg = MultiJson.decode(message)
conn.rpush("queue:#{msg['queue']}", message)
end
end
elsif params['delete']
Sidekiq.redis do |conn|
conn.zremrangebyscore('retry', score, score)
end
end
redirect root_path
end
end
end

View file

@ -1,13 +1,13 @@
header
h1 Retry Job #{@score}
h1 Retry Job
- retries_with_score(@score).each do |(msg, score)|
- retries_with_score(@score).each do |msg|
table class="table table-striped table-bordered"
tbody
tr
th Queue
td
a href="queues/#{msg['queue']}" #{msg['queue']}
a href="#{root_path}queues/#{msg['queue']}" #{msg['queue']}
tr
th Job Class
td
@ -36,5 +36,9 @@ header
td== relative_time(Time.parse(msg['failed_at']))
tr
th Next Retry
td== relative_time(Time.at(score))
td== relative_time(Time.at(@score))
form.form-horizontal action="#{root_path}retries/#{@score}" method="post"
a.btn href="#{root_path}" ← Back
input.btn.btn-primary type="submit" name="retry" value="Retry Now"
input.btn.btn-danger type="submit" name="delete" value="Delete"