Class: Sidekiq::SortedSet

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/sidekiq/api.rb

Direct Known Subclasses

RetrySet, ScheduledSet

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ SortedSet

Returns a new instance of SortedSet.



115
116
117
# File 'lib/sidekiq/api.rb', line 115

def initialize(name)
  @zset = name
end

Instance Method Details

#delete(score) ⇒ Object



140
141
142
143
144
145
# File 'lib/sidekiq/api.rb', line 140

def delete(score)
  count = Sidekiq.redis do |conn|
    conn.zremrangebyscore(@zset, score, score)
  end
  count != 0
end

#each(&block) ⇒ Object



123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# File 'lib/sidekiq/api.rb', line 123

def each(&block)
  # page thru the sorted set backwards so deleting entries doesn't screw up indexing
  page = -1
  page_size = 50

  loop do
    elements = Sidekiq.redis do |conn|
      conn.zrange @zset, page * page_size, (page * page_size) + (page_size - 1), :with_scores => true
    end
    break if elements.empty?
    page -= 1
    elements.each do |element, score|
      block.call SortedEntry.new(self, score, element)
    end
  end
end

#sizeObject



119
120
121
# File 'lib/sidekiq/api.rb', line 119

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