class SidekiqUniqueJobs::Digests

def page(cursor: 0, pattern: SCAN_PATTERN, page_size: 100)

Returns:
  • (Array>) - total_size, next_cursor, locks

Parameters:
  • page_size (Integer) -- 100 the size per page
  • pattern (String) -- SCAN_PATTERN the match pattern to search for
  • cursor (Integer) -- the cursor for this iteration
def page(cursor: 0, pattern: SCAN_PATTERN, page_size: 100)
  redis do |conn|
    total_size, digests = conn.multi do
      conn.zcard(key)
      conn.zscan(key, cursor, match: pattern, count: page_size)
    end
    [
      total_size,
      digests[0], # next_cursor
      digests[1].map { |digest, score| Lock.new(digest, time: score) }, # entries
    ]
  end
end