Class: Zhong::Web

Inherits:
Sinatra::Base
  • Object
show all
Defined in:
lib/zhong/web.rb

Instance Method Summary collapse

Instance Method Details

#indexObject



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