Class: Sidekiq::ProfileSet
- Inherits:
-
Object
- Object
- Sidekiq::ProfileSet
- Includes:
- Enumerable
- Defined in:
- lib/sidekiq/api.rb
Instance Method Summary collapse
- #each(&block) ⇒ Object
-
#initialize ⇒ ProfileSet
constructor
This is a point in time/snapshot API, you’ll need to instantiate a new instance if you want to fetch newer records.
- #size ⇒ Object
Constructor Details
#initialize ⇒ ProfileSet
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 |
#size ⇒ Object
1285 1286 1287 |
# File 'lib/sidekiq/api.rb', line 1285 def size @records.size end |