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.



1298
1299
1300
1301
1302
1303
1304
1305
# File 'lib/sidekiq/api.rb', line 1298

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



1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
# File 'lib/sidekiq/api.rb', line 1311

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



1307
1308
1309
# File 'lib/sidekiq/api.rb', line 1307

def size
  @records.size
end