【发布时间】:2018-11-14 21:33:25
【问题描述】:
我正在用 Ruby 创建一个作业,它从 mysql 数据库中获取信息并将其发送到 html 页面以创建一个小部件。问题是,当我将数据从 mysql 数据库中取出时,我无法获得要显示的数据,但是当我手动输入输入并将其发送到 html 页面时......它可以工作!
require 'Mysql2'
SCHEDULER.every '10s', :first_in => 0 do |job|
$application, $details, $timestamp = 0
table = Array.new
client = Mysql2::Client.new(:host => "localhost", :username => "****", :password => "****", :database => "Sample_Database")
#Gets statistics for latest input
sstc = client.query("SELECT * FROM Probably_Serious_Alerts")
sstc.each do |row|
$row = "{ cols: [ {value: '" + row["time_stamp"].to_s + "'}, {value: '"+ row["application"].to_s + "'}, {value: '" + row["details"].to_s + "'}]}"
table.push($row)
end
rows = "rows = ["
for row in table
rows = rows + row + ","
end
rows = rows[0...-1]
rows = rows + ']'
hrows = [
{ cols: [ {value: 'Time'}, {value: 'Monitoring System'}, {value: 'Event'}]}
]
sleep(1)
#rows = [
# { cols: [ {value: '2016-09-19 14:39:30 +0100'}, {value: 'Solarwinds'}, {value: 'First Solarwinds Error'}]},
# { cols: [ {value: '2016-09-19 15:24:17 +0100'}, {value: 'Nagios'}, {value: 'First Nagios'}]}]
puts rows
send_event('my-table', { hrows: hrows, rows: rows } )
end
注释代码是我运行时打印到终端的代码。这也是我发送到 HTML 页面并在小部件上工作的内容。有任何想法吗?是异步的吗?
【问题讨论】:
-
你如何将它“发送”到 html 页面?你能发布那个代码吗?
-
还有你的 .erb 文件是什么样的?
标签: mysql ruby asynchronous widget dashing