forgeplus-deploy/02-forgeplus/nacos_beat.rb

67 lines
2.5 KiB
Ruby

require 'rufus-scheduler'
config = Rails.application.config_for(:configuration)
nacos_config = config['nacos']
Rails.logger.info "nacos_config==#{nacos_config}"
return if nacos_config.blank?
local_ip = "127.0.0.1"
Socket.ip_address_list.each do |addrinfo|
if addrinfo.ip_address != "127.0.0.1" && addrinfo.ipv4_private?
Rails.logger.info addrinfo.ip_address
local_ip = addrinfo.ip_address
end
end
params = { "serviceName" => "forgeplus", "ip" => "#{local_ip}", "port" => "8080" }
params = { "serviceName" => "forgeplus", "ip" => "#{local_ip}", "port" => "8080", "username" => "#{nacos_config["username"]}", "password" => "#{nacos_config["password"]}" } if nacos_config["username"].present? && nacos_config["password"].present?
url = "#{nacos_config["url"]}/nacos/v1/ns/instance"
uri = URI.parse(url)
http = Net::HTTP.new uri.host, uri.port
http.open_timeout = 60
http.read_timeout = 60
if uri.scheme == 'https'
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.use_ssl = true
end
request = Net::HTTP::Post.new(uri)
request.set_form_data(params) if params.present?
response = http.start { |http| http.request(request) }
Rails.logger.info "register nacos response.body==#{response.body}"
scheduler = Rufus::Scheduler.new
scheduler.every '5s' do
puts Time.new
puts 'Hello... Word'
Rails.logger.info 'Hello... Word'
local_ip = "127.0.0.1"
Socket.ip_address_list.each do |addrinfo|
if addrinfo.ip_address != "127.0.0.1" && addrinfo.ipv4_private?
Rails.logger.info addrinfo.ip_address
local_ip = addrinfo.ip_address
end
end
begin
params = { "serviceName" => "forgeplus", "ip" => "#{local_ip}", "port" => "8080" }
params = { "serviceName" => "forgeplus", "ip" => "#{local_ip}", "port" => "8080", "username" => "#{nacos_config["username"]}", "password" => "#{nacos_config["password"]}" } if nacos_config["username"].present? && nacos_config["password"].present?
url = "#{nacos_config["url"]}/nacos/v1/ns/instance/beat"
uri = URI.parse(url)
http = Net::HTTP.new uri.host, uri.port
http.open_timeout = 60
http.read_timeout = 60
if uri.scheme == 'https'
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
http.use_ssl = true
end
request = Net::HTTP::Put.new(uri)
request.set_form_data(params) if params.present?
response = http.start { |http| http.request(request) }
Rails.logger.info "beat nacos response.body==#{response.body}"
rescue => e
Rails.logger.info("Heartbeat thread error: #{e.message}")
end
end
# scheduler.join