我无法理解下面的ruby代码的作用。任何人都可以给我一些解释。谢谢!
map '/healthz' do
run Healthz.new(logger)
end
The Healthz是:
class Healthz
def initialize(logger)
@logger = logger
end
def call(env)
@logger.debug "healthz access"
healthz = Component.updated_healthz
[200, { 'Content-Type' => 'application/json', 'Content-Length' => healthz.length.to_s }, healthz]
rescue => e
@logger.error "healthz error #{e.inspect} #{e.backtrace.join("\n")}"
raise e
end
end
使用的lib是:
require "eventmachine"
require 'thin'
require "yajl"
require "nats/client"
require "base64"
require 'set'
答案 0 :(得分:2)
由于您使用的是eventmachine和thin,我猜这段代码是一种简单的Web应用程序的路由代码。
也就是说,它会将应用程序的/healtz
路由映射到Healtz
类,这样如果您启动应用程序并将浏览器指向localhost:<whatever_port_thin_uses>/healtz
,它就会启动为你准备Healtz.new
个实例。
由于我不知道Healtz
实际上做了什么,我不知道实际会发生什么,但我的猜测是它是某种机架应用程序。
而且,正如我已经说过的,这只是我的猜测,从看到你正在使用的lib列表。