首页 > 解决方案 > 对破折号小部件进行故障排除

问题描述

我创建了一个小部件来显示服务器负载。但是,它不显示服务器负载。

仪表板.erb

<li data-row="1" data-col="1" data-sizex="1" data-sizey="1">
  <div data-id="serverload" data-view="Graph" data-title="Server load" data-moreinfo="1 min intervals" ></div>
</li>

作业/serverload.rb

points = []
(1..10).each do |i|
  points << { x: i, y: 0 }
end
last_x = points.last[:x]

SCHEDULER.every '1m' do
  points.shift
  last_x += 1
  uptime = %x('uptime').gsub(/.*: /, '\1').gsub(/,/, '\1')
  points << { x: last_x, y: uptime[0..3].to_f }
  send_event('loadavg1min', points: points)
end

它简单地显示以下内容。我们如何对这个特定的小部件进行故障排除并找出它失败的地方?

在此处输入图像描述

标签: rubydashing

解决方案


离开文档中的示例,尝试添加first_in:选项以及将哈希作为第二个参数传递给send_event

尝试:

SCHEDULER.every '1m', first_in: 1.second.since do
  points.shift
  last_x += 1
  uptime = %x('uptime').gsub(/.*: /, '\1').gsub(/,/, '\1')
  points << { x: last_x, y: uptime[0..3].to_f }
  send_event('loadavg1min', { points: points })
end

文档:

# :first_in sets how long it takes before the job is first run. In this case, 
it is run immediately
Dashing.scheduler.every '1m', first_in: 1.second.since do |job|
  Dashing.send_event('karma', { current: rand(1000) })
end

推荐阅读