Class: Sidekiq::SortedSet

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

Overview

Base class for all sorted sets within Sidekiq.

Direct Known Subclasses

JobSet

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name) ⇒ SortedSet

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

:nodoc:



615
616
617
618
# File 'lib/sidekiq/api.rb', line 615

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

Instance Attribute Details

#nameObject (readonly)

Redis key of the set



611
612
613
# File 'lib/sidekiq/api.rb', line 611

def name
  @name
end

#NameObject (readonly)

Redis key of the set



611
# File 'lib/sidekiq/api.rb', line 611

attr_reader :name

Instance Method Details

#as_json(options = nil) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

:nodoc:



653
654
655
# File 'lib/sidekiq/api.rb', line 653

def as_json(options = nil)
  {name: name} # 5336
end

#clearBoolean Also known as: 💣

Returns always true.

Returns:

  • (Boolean)

    always true



643
644
645
646
647
648
# File 'lib/sidekiq/api.rb', line 643

def clear
  Sidekiq.redis do |conn|
    conn.unlink(name)
  end
  true
end

#scan(match, count = 100) {|each| ... } ⇒ Object

Scan through each element of the sorted set, yielding each to the supplied block. Please see Redis’s <a href=“redis.io/commands/scan/”>SCAN documentation</a> for implementation details.

Parameters:

  • match (String)

    a snippet or regexp to filter matches.

  • count (Integer) (defaults to: 100)

    number of elements to retrieve at a time, default 100

Yield Parameters:



631
632
633
634
635
636
637
638
639
640
# File 'lib/sidekiq/api.rb', line 631

def scan(match, count = 100)
  return to_enum(:scan, match, count) unless block_given?

  match = "*#{match}*" unless match.include?("*")
  Sidekiq.redis do |conn|
    conn.zscan(name, match: match, count: count) do |entry, score|
      yield SortedEntry.new(self, score, entry)
    end
  end
end

#sizeObject

real-time size of the set, will change



621
622
623
# File 'lib/sidekiq/api.rb', line 621

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