class Volt::MessageBus::ServerTracker
Constants
- UPDATE_INTERVAL
Public Class Methods
new(volt_app, server_id, port)
click to toggle source
# File lib/volt/server/message_bus/peer_to_peer/server_tracker.rb, line 11 def initialize(volt_app, server_id, port) @volt_app = volt_app @server_id = server_id @port = port @main_thread = Thread.new do # Continually update the database letting the server know the server # is active. loop do begin register rescue Exception => e puts "MessageBus Register Error: #{e.inspect}" end sleep UPDATE_INTERVAL end end end
Public Instance Methods
local_ips()
click to toggle source
# File lib/volt/server/message_bus/peer_to_peer/server_tracker.rb, line 48 def local_ips addr_infos = Socket.ip_address_list ips = addr_infos.select do |addr| addr.pfamily == Socket::PF_INET end.map(&:ip_address) end
register()
click to toggle source
Register this server as active with the database
# File lib/volt/server/message_bus/peer_to_peer/server_tracker.rb, line 35 def register instances = @volt_app.store.active_volt_instances instances.where(server_id: @server_id).first.then do |item| ips = local_ips.join(',') time = Time.now.to_i if item item.assign_attributes(ips: ips, time: time, port: @port) else instances << {server_id: @server_id, ips: ips, port: @port, time: time} end end end
stop()
click to toggle source
# File lib/volt/server/message_bus/peer_to_peer/server_tracker.rb, line 30 def stop @main_thread.kill end