Class: Sidekiq::ProfileSet

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

Instance Method Summary collapse

Constructor Details

#initializeProfileSet

This is a point in time/snapshot API, you’ll need to instantiate a new instance if you want to fetch newer records.



1276
1277
1278
1279
1280
1281
1282
1283
# File 'lib/sidekiq/api.rb', line 1276

def initialize
  @records = Sidekiq.redis do |c|
    # This throws away expired profiles
    c.zremrangebyscore("profiles", "-inf", Time.now.to_f.to_s)
    # retreive records, newest to oldest
    c.zrange("profiles", "+inf", 0, "byscore", "rev")
  end
end

Instance Method Details

#each(&block) ⇒ Object



1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
# File 'lib/sidekiq/api.rb', line 1289

def each(&block)
  fetch_keys = %w[started_at jid type token size elapsed].freeze
  arrays = Sidekiq.redis do |c|
    c.pipelined do |p|
      @records.each do |key|
        p.hmget(key, *fetch_keys)
      end
    end
  end

  arrays.compact.map { |arr| ProfileRecord.new(arr) }.each(&block)
end

#sizeObject



1285
1286
1287
# File 'lib/sidekiq/api.rb', line 1285

def size
  @records.size
end