Module: Periodically::Debug
- Defined in:
- lib/periodically/debug.rb
Class Method Summary collapse
Class Method Details
.lock_ttls ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/periodically/debug.rb', line 33 def self.lock_ttls Periodically.redis do |conn| keys = conn.scan_each(:match => "locks:*").to_a if keys.length == 0 {} else ttls = conn.eval(%{ local matcher = KEYS[1] .. ":*" local ttls = {} local cursor = "0" repeat local result = redis.call("SCAN", cursor, "MATCH", matcher) cursor = result[1] local keys = result[2] for i, key in ipairs(keys) do ttls[#ttls + 1] = redis.call('ttl', key) end until cursor == "0" return ttls }, :keys => ['locks']) Hash[keys.zip(ttls)] end end end |
.total_debug_dump ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/periodically/debug.rb', line 5 def self.total_debug_dump error_counts = Periodically.redis do |conn| keys = conn.keys("errors:*").to_a if keys.length == 0 {} else values = conn.mget(keys).map(&:to_i) Hash[keys.zip(values)] end end = Periodically.redis do |conn| keys = conn.keys("error_messages:*").to_a if keys.length == 0 {} else values = conn.mget(keys) Hash[keys.zip(values)] end end locks = lock_ttls { job_count: Periodically._registered_jobs.size, error_counts: error_counts, error_messages: , lock_ttls: locks } end |