我正在使用仪表板在特定服务器上显示一些数据点。获取这些数据需要非平凡的资源,所以理想情况下只有在有一个主动监听它的小部件时才会发生这种情况。这是可行的吗?例如:
用户浏览/ server-info?server_id = 1234
这将返回一个HTML页面,其中包含data-id =" server-info-1234"并以某种方式警告jobs / server-info.rb开始在" 1234"上收集数据。理想情况下,一旦选项卡关闭,就会通知作业。
从本质上讲,网络视图是否有办法将数据/事件发送到作业?
答案 0 :(得分:0)
不,不是真的,但有可能以另一种方式解决。
在您的工作中,一旦require 'sinatra'
,就可以看到有多少活动连接正在运行:Sinatra::Application.settings.connections
。
所以,做这样的事情:
require 'sinatra'
current = 0
SCHEDULER.every '30s' do
if Sinatra::Application.settings.connections.length > 0
current = doMyCostlyOperation()
end
send_event('value', { current: current })
end