This repository was archived by the owner on May 2, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathagent.rb
More file actions
48 lines (42 loc) · 1.34 KB
/
agent.rb
File metadata and controls
48 lines (42 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
module Graphdat
class Agent
def self.send_heartbeat
data = [0,0,0,0].pack("N*")
len= data.length
l = [len].pack('N*')
@socket.send l, 0
@socket.send data, 0
return len
end
def self.send_package(msg = nil)
data = msg.to_msgpack
len= data.to_s.length
l = [len].pack('N*')
@socket.send l, 0
response = @socket.send data, 0
@last_sent_data = Time.now.to_i
msg
rescue
Rails.logger.error 'Graphdat Not Installed'
end
def self.start
@socket = UNIXSocket.new("/tmp/gd.agent.sock")
@last_sent_data = Time.now.to_i
Thread.new do
while 1 do
sleep 1
time_elapsed = (Time.now.to_i - @last_sent_data)
if time_elapsed < 30
sleep_time = 30 - time_elapsed
Rails.logger.info 'Sleeping Time' + Process.uid.to_s
else
@last_sent_data = Time.now.to_i
self.send_heartbeat
end
end
end
rescue
Rails.logger.error 'Graphdat Not Installed'
end
end
end