Class: Sidekiq::Workers
- Inherits:
-
Object
- Object
- Sidekiq::Workers
- Includes:
- Enumerable
- Defined in:
- lib/sidekiq/api.rb
Overview
Programmatic access to the current active worker set.
WARNING WARNING WARNING
This is live data that can change every millisecond. If you call #size => 5 and then expect #each to be called 5 times, you’re going to have a bad time.
workers = Sidekiq::Workers.new
workers.size => 2
workers.each do |name, work, started_at|
# name is a unique identifier per worker
# work is a Hash which looks like:
# { 'queue' => name, 'run_at' => timestamp, 'payload' => msg }
# started_at is a String rep of the time when the worker started working on the job
end
Instance Method Summary collapse
Instance Method Details
#each(&block) ⇒ Object
386 387 388 389 390 391 392 393 394 395 396 397 398 |
# File 'lib/sidekiq/api.rb', line 386 def each(&block) Sidekiq.redis do |conn| workers = conn.smembers("workers") workers.each do |w| msg, time = conn.multi do conn.get("worker:#{w}") conn.get("worker:#{w}:started") end next unless msg block.call(w, Sidekiq.load_json(msg), time) end end end |