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.
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 |
#size ⇒ Object
1307 1308 1309 |
# File 'lib/sidekiq/api.rb', line 1307 def size @records.size end |