Class: Zhong::Web
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- Zhong::Web
- Defined in:
- lib/zhong/web.rb
Instance Method Summary collapse
Instance Method Details
#index ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'lib/zhong/web.rb', line 54 def index @jobs = Zhong.jobs.values @last_runs = zhong_mget(@jobs, "last_ran") @disabled = zhong_mget(@jobs, "disabled") @hosts = safe_mget(Zhong.redis.scan_each(match: "zhong:heartbeat:*").to_a).map do |k, v| host, pid = k.split("zhong:heartbeat:", 2)[1].split("#", 2) {host: host, pid: pid, last_seen: Time.at(v.to_i)} end end |
#safe_mget(keys) ⇒ Object
70 71 72 73 74 75 76 |
# File 'lib/zhong/web.rb', line 70 def safe_mget(keys) if keys.length > 0 Zhong.redis.mapped_mget(*keys) else {} end end |
#zhong_mget(jobs, key) ⇒ Object
64 65 66 67 68 |
# File 'lib/zhong/web.rb', line 64 def zhong_mget(jobs, key) keys = jobs.map(&:to_s) ret = safe_mget(keys.map { |j| "zhong:#{key}:#{j}" }) Hash[keys.map { |j| [j, ret["zhong:#{key}:#{j}"]] }] end |