mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
Add started_at info to the Workers API, thanks @mariovisic
This commit is contained in:
parent
60ff419151
commit
f024c6079c
2 changed files with 12 additions and 6 deletions
|
@ -372,15 +372,16 @@ module Sidekiq
|
||||||
# WARNING WARNING WARNING
|
# WARNING WARNING WARNING
|
||||||
#
|
#
|
||||||
# This is live data that can change every millisecond.
|
# This is live data that can change every millisecond.
|
||||||
# If you do #size => 5 and then expect #each to be
|
# If you call #size => 5 and then expect #each to be
|
||||||
# called 5 times, you're going to have a bad time.
|
# called 5 times, you're going to have a bad time.
|
||||||
#
|
#
|
||||||
# workers = Sidekiq::Workers.new
|
# workers = Sidekiq::Workers.new
|
||||||
# workers.size => 2
|
# workers.size => 2
|
||||||
# workers.each do |name, work|
|
# workers.each do |name, work, started_at|
|
||||||
# # name is a unique identifier per Processor instance
|
# # name is a unique identifier per worker
|
||||||
# # work is a Hash which looks like:
|
# # work is a Hash which looks like:
|
||||||
# # { 'queue' => name, 'run_at' => timestamp, 'payload' => msg }
|
# # { '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
|
# end
|
||||||
|
|
||||||
class Workers
|
class Workers
|
||||||
|
@ -390,9 +391,12 @@ module Sidekiq
|
||||||
Sidekiq.redis do |conn|
|
Sidekiq.redis do |conn|
|
||||||
workers = conn.smembers("workers")
|
workers = conn.smembers("workers")
|
||||||
workers.each do |w|
|
workers.each do |w|
|
||||||
msg = conn.get("worker:#{w}")
|
msg, time = conn.multi do
|
||||||
|
conn.get("worker:#{w}")
|
||||||
|
conn.get("worker:#{w}:started")
|
||||||
|
end
|
||||||
next unless msg
|
next unless msg
|
||||||
block.call(w, Sidekiq.load_json(msg))
|
block.call(w, Sidekiq.load_json(msg), time)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -310,13 +310,15 @@ class TestApi < Minitest::Test
|
||||||
c.multi do
|
c.multi do
|
||||||
c.sadd('workers', s)
|
c.sadd('workers', s)
|
||||||
c.set("worker:#{s}", data)
|
c.set("worker:#{s}", data)
|
||||||
|
c.set("worker:#{s}:started", Time.now.to_s)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
assert_equal 1, w.size
|
assert_equal 1, w.size
|
||||||
w.each do |x, y|
|
w.each do |x, y, z|
|
||||||
assert_equal s, x
|
assert_equal s, x
|
||||||
assert_equal 'default', y['queue']
|
assert_equal 'default', y['queue']
|
||||||
|
assert_equal Time.now.year, DateTime.parse(z).year
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue