Skip to content

Commit

Permalink
Add SortedSet#name, for subclass access
Browse files Browse the repository at this point in the history
  • Loading branch information
mperham committed Feb 14, 2014
1 parent 2dc1295 commit 0a279e8
Showing 1 changed file with 13 additions and 11 deletions.
24 changes: 13 additions & 11 deletions lib/sidekiq/api.rb
Expand Up @@ -257,18 +257,20 @@ def retry
class SortedSet
include Enumerable

attr_reader :name

def initialize(name)
@zset = name
@name = name
@_size = size
end

def size
Sidekiq.redis {|c| c.zcard(@zset) }
Sidekiq.redis {|c| c.zcard(name) }
end

def schedule(timestamp, message)
Sidekiq.redis do |conn|
conn.zadd(@zset, timestamp.to_f.to_s, Sidekiq.dump_json(message))
conn.zadd(name, timestamp.to_f.to_s, Sidekiq.dump_json(message))
end
end

Expand All @@ -282,7 +284,7 @@ def each(&block)
range_start = page * page_size + offset_size
range_end = page * page_size + offset_size + (page_size - 1)
elements = Sidekiq.redis do |conn|
conn.zrange @zset, range_start, range_end, :with_scores => true
conn.zrange name, range_start, range_end, :with_scores => true
end
break if elements.empty?
page -= 1
Expand All @@ -295,7 +297,7 @@ def each(&block)

def fetch(score, jid = nil)
elements = Sidekiq.redis do |conn|
conn.zrangebyscore(@zset, score, score)
conn.zrangebyscore(name, score, score)
end

elements.inject([]) do |result, element|
Expand All @@ -316,7 +318,7 @@ def find_job(jid)
def delete(score, jid = nil)
if jid
elements = Sidekiq.redis do |conn|
conn.zrangebyscore(@zset, score, score)
conn.zrangebyscore(name, score, score)
end

elements_with_jid = elements.map do |element|
Expand All @@ -325,8 +327,8 @@ def delete(score, jid = nil)
if message["jid"] == jid
_, @_size = Sidekiq.redis do |conn|
conn.multi do
conn.zrem(@zset, element)
conn.zcard @zset
conn.zrem(name, element)
conn.zcard name
end
end
end
Expand All @@ -335,8 +337,8 @@ def delete(score, jid = nil)
else
count, @_size = Sidekiq.redis do |conn|
conn.multi do
conn.zremrangebyscore(@zset, score, score)
conn.zcard @zset
conn.zremrangebyscore(name, score, score)
conn.zcard name
end
end
count != 0
Expand All @@ -345,7 +347,7 @@ def delete(score, jid = nil)

def clear
Sidekiq.redis do |conn|
conn.del(@zset)
conn.del(name)
end
end
end
Expand Down

0 comments on commit 0a279e8

Please sign in to comment.