0
我有一個ruby腳本,用於檢查每個微服務API的微服務版本。我試着用竹子運行這個並將結果作爲html表格返回。刪除線程腳本中的多餘字符
...
h = {}
threads = []
service = data_hash.keys
service.each do |microservice|
threads << Thread.new do
thread_id = Thread.current.object_id.to_s(36)
begin
h[thread_id] = ""
port = data_hash["#{microservice}"]['port']
nodes = "knife search 'chef_environment:#{env} AND recipe:#
{microservice}' -i 2>&1 | tail -n 2"
node = %x[ #{nodes} ].split
node.each do |n|
h[thread_id] << "\n<html><body><h4> Node: #{n} </h4></body></html>\n"
uri = URI("http://#{n}:#{port}/service-version")
res = Net::HTTP.get_response(uri)
status = Net::HTTP.get(uri)
data_hash = JSON.parse(status)
name = data_hash['name']
version = data_hash['version']
h[thread_id] << "<table><tr><th> #{name}:#{version} </th></tr></table>"
end
rescue => e
h[thread_id] << "ReadTimeout Error"
next
end
end
end
threads.each do |thread|
thread.join
end
ThreadsWait.all_waits(*threads)
puts h.to_a
的問題是,我要輸出名稱和版本爲HTML表,如果我把線程它生成各行之間的一些隨機的字符:
<table><tr><th> microservice1:2.10.3 </th></tr></table>
bjfsw
<table><tr><th> microservice2:2.10.8 </th></tr></table>
非常感謝,任何想法如何將輸出設置爲一個HTML表格,面對我們有一個循環的事實? –