Skip to content

Commit

Permalink
remove method to delete job(s) by score without a jid
Browse files Browse the repository at this point in the history
 * style fixes
  • Loading branch information
pik committed Aug 9, 2015
1 parent f378074 commit 90f5059
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 31 deletions.
32 changes: 9 additions & 23 deletions lib/sidekiq/api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -371,10 +371,8 @@ def at
def delete
if @value
@parent.delete_by_value(@parent.name, @value)
elsif jid
@parent.delete_by_jid(score, jid)
else
@parent.delete_by_score(score, score)
@parent.delete_by_jid(score, jid)
end
end

Expand Down Expand Up @@ -525,10 +523,6 @@ def find_job(jid)
self.detect { |j| j.jid == jid }
end

def delete(score, jid = nil)
jid ? delete_by_jid(score, jid) : delete_by_score(score, score)
end

def delete_by_value(name, value)
Sidekiq.redis do |conn|
ret = conn.zrem(name, value)
Expand All @@ -538,29 +532,21 @@ def delete_by_value(name, value)
end

def delete_by_jid(score, jid)
elements = Sidekiq.redis do |conn|
conn.zrangebyscore(name, score, score)
end
elements.each do |element|
message = Sidekiq.load_json(element)
if message["jid"] == jid
break Sidekiq.redis do |conn|
Sidekiq.redis do |conn|
elements = conn.zrangebyscore(name, score, score)
elements.each do |element|
message = Sidekiq.load_json(element)
if message["jid"] == jid
ret = conn.zrem(name, element)
@_size -= 1 if ret
ret
break ret
end
false
end
false
end
end

def delete_by_score(score_min, score_max)
Sidekiq.redis do |conn|
ret = conn.zremrangebyscore(name, score_min, score_max)
@_size -= ret
ret
end
end
alias_method :delete, :delete_by_jid
end

##
Expand Down
14 changes: 6 additions & 8 deletions test/test_api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -340,14 +340,12 @@ class ApiWorker
assert_in_delta Time.now.to_f, retri.at.to_f, 0.02
end

it 'can delete multiple retries from score' do
same_time = Time.now.to_f
add_retry('bob1', same_time)
add_retry('bob2', same_time)
r = Sidekiq::RetrySet.new
assert_equal 2, r.size
Sidekiq::RetrySet.new.delete(same_time)
assert_equal 0, r.size
it 'requires a jid to delete an entry' do
start_time = Time.now.to_f
add_retry('bob2', Time.now.to_f)
assert_raises(ArgumentError) do
Sidekiq::RetrySet.new.delete(start_time)
end
end

it 'can delete a single retry from score and jid' do
Expand Down

0 comments on commit 90f5059

Please sign in to comment.